Question

Je suis actuellement à l'aide d'IBM Rational Application Development (IBM Eclipse de distro) pour le développement de portlets et ayant un petit problème avec l'intégration Maven.

Voici la situation:

1) IBM RAD a la possibilité de déployer un portlet directement à partir de lui-même (RUN / debug)

Dans ce cas, je ne suis pas en utilisant Maven généré WAR parce que IBM RAD semble créer la guerre se automagiquement et le pousser à IBM WebSphere Portal. Ce qui est pas une grosse affaire à ce jour.

2) dépendances Maven ne sont pas copiés WebContent / WEB-INF / lib

IBM a sa propre structure de répertoire: WebContent / WEB-INF et WebContent / META-INF. Si je mis à jour pom.xml pour inclure de nouvelles dépendances, ces POTS ne seront pas copiés dans le répertoire WebContent / WEB-INF / lib donc quand je voulais RUN / DEBUG portlet, ces bibliothèques ne seront pas inclus.

Question:

Est-il possible de copier les nouveaux fichiers JAR automatiquement dans le dossier WebContent / WEB-INF / lib dès que je mets à jour le pom.xml? (Si oui, quel cycle de vie cela devrait être?)

S'il n'y a pas de solution parfaite pour la question n ° 1, je ne me dérange pas si cette étape est inclus dans le « mvn install » compilation / but.

Je préfère ne pas utiliser ant-tâche, mais à la place maven propre utilitaire de copie si exist.

Si quelqu'un a des suggestions comment intégrer Maven et IBM WebSphere RAD pour le développement de portlets, vous pouvez ajouter plus de réponses.

Merci

Était-ce utile?

La solution

Voici un squelette pom.xml Maven 2 Je choisis d'un ancien projet RAD:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>fooproject</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <properties>
    <project.build.sourceEncoding>US-ASCII</project.build.sourceEncoding>
  </properties>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <resources>
      <resource>
        <directory>src</directory>
        <includes><include>**/*.properties</include></includes>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1-beta-1</version>
        <configuration>
          <webappDirectory>${project.basedir}/WebContent</webappDirectory>
          <warSourceDirectory>${project.basedir}/WebContent</warSourceDirectory>
          <webXml>${project.basedir}/WebContent/WEB-INF/web.xml</webXml>
          <packagingIncludes>**/*.properties,**/*.jsp,**/*.jar,**/*.class,theme/**/*,images/**/*,**/*.xml,**/*.swf,**/*.tld,**/*.txt</packagingIncludes>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <!-- compile classpath -->
  </dependencies>
</project>

Ceci a été appliqué à la structure de répertoire créé par RAD (version 7.5, 6.5.x Portal sur ciblage WAS 7). Ce n'est pas la seule façon de le faire et je suis sûr que la pom pourrait être améliorée, mais elle a atteint son but. Ajoutez vos dépendances, selon le cas.

Autres conseils

J'ai eu la même question et les questions d'intégration Maven et RAD. J'utilise RAD 8 avec M2e et essayer de automatiquement deploy / debug portlets pour WebSphere Portal 7.

D'abord, comme le commentaire de Gorkem:

Je ne sais pas si cela fonctionne pour IBM RAD, mais avec l'Eclipse WTP vous pouvez définir les pièces d'assemblage de déploiement à partir des propriétés du projet.

fonctionne dans RAD. J'ai installé mon projet de déploiement assemblage pour correspondre à la structure de construction WebSphere et déplacer mon dépendances Maven dans le répertoire WEB-INF \ lib dossier (Projet -> Propriétés -> Assemblée de déploiement -> Ajouter -> Java Construire les entrées de chemin -> Maven dépendances).

entrer image description ici

Cette configuration ne me permet de construire la guerre avec succès et je peux exporter le fichier EAR généré à partir de RAD et de déployer manuellement sur mon serveur local et il fonctionne très bien. Cependant, la Déployez automatique et « Exécuter sur le serveur » options ne fonctionnent pas avec ce seul. Pour une raison quelconque, il déploiera toutes les dépendances transitif (portlet-api, servlet-api, etc.) à WebSphere qui provoque des conflits et des explosions.

Par conséquent, j'ai essayé la solution pom proposée par McDowell avec un succès limité - il ne serait pas compiler ni fonctionner correctement mes tests, mais quand je l'ai enlevé les tests qu'il a fait avec succès de RAD Deploy. Je travaille hors de son pom pour inclure des tests et signalerai mes résultats ici quand je le faire fonctionner.

J'ai aussi trouvé ce fil qui contient un lien vers un 2010 Document IBM sur le chemin "offical" d'intégrer Maven et RAD. Je travaille à travers elle et nous verrons quelle solution répond mieux à mes besoins. Encore une fois, si / quand je l'ai, je travaille signalerai plus d'infos ici.


Mise à jour 11/21/2011

IBM a produit un document mis à jour pour l'intégration Maven / RAD. Vous pouvez trouver . Je suis allé à travers elle et il est assez bien fait. Il est une étape par étape avec des captures d'écran et un peu de fond sur Maven, m2eclipse et WTP. Il y a encore contrariétés couple qui Chuck décrit dans le document, mais à la fin, il a permis à notre équipe de commencer à utiliser Maven dans un environnement WebSphere Portal sans abandonner les conventions Maven. Espérons que d'autres trouveront utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top