Maven pour copier le fichier JAR lors de l’ajout de dépendances

J’utilise actuellement IBM Rational Application Development (dissortingbution IBM Eclipse) pour le développement de portlets et j’ai un petit problème avec l’intégration Maven.

Voici la situation:

1) IBM RAD peut déployer un portlet directement à partir de lui-même (RUN / DEBUG)

Dans ce cas, je n’utilise pas du tout le fichier WAR généré par Maven car IBM RAD semble créer le fichier WAR lui-même automatiquement et le transmettre à IBM WebSphere Portal. Ce qui n’est pas un gros problème jusqu’à présent.

2) Les dépendances Maven ne sont pas copiées dans le répertoire WebContent / WEB-INF / lib

IBM a sa propre structure de répertoires: WebContent / WEB-INF et WebContent / META-INF. Si j’ai mis à jour pom.xml pour inclure de nouvelles dépendances, ces fichiers JARS ne seront pas copiés dans le répertoire WebContent / WEB-INF / lib. Par conséquent, lorsque je souhaite exécuter / désactiver le portlet, ces bibliothèques ne seront pas incluses.

Question:

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

S’il n’y a pas de solution parfaite pour la question 1, cela ne me dérange pas que cette étape soit incluse dans la compilation / objective “mvn install”.

Préfère ne pas utiliser ant-task mais plutôt maven, un utilitaire de copie si existant.

Si quelqu’un a des suggestions sur la manière d’intégrer le développement de portlets Maven et IBM RAD pour WebSphere, n’hésitez pas à append d’autres réponses.

Merci

Voici un squelette Maven 2 pom.xml que j’ai choisi dans un ancien projet RAD:

 4.0.0 foo fooproject 1.0-SNAPSHOT war  US-ASCII   src ${project.artifactId}-${project.version}   src **/*.properties true     org.apache.maven.plugins maven-comstackr-plugin 2.1   org.apache.maven.plugins maven-war-plugin 2.1-beta-1  ${project.basedir}/WebContent ${project.basedir}/WebContent ${project.basedir}/WebContent/WEB-INF/web.xml **/*.properties,**/*.jsp,**/*.jar,**/*.class,theme/**/*,images/**/*,**/*.xml,**/*.swf,**/*.tld,**/*.txt   true           

Cela a été appliqué à la structure de répertoires créée par RAD (version 7.5, visant Portal 6.5.x sur WAS 7). Ce n’est pas la seule façon de le faire et je suis sûr que le pom pourrait être amélioré, mais il a atteint son objective. Ajoutez vos dépendances selon vos besoins.

J’avais la même question et des problèmes d’intégration de Maven et de RAD. J’utilise RAD 8 avec m2e et j’essaie de déployer / déboguer automatiquement des portlets pour WebSphere Portal 7.

Tout d’abord, à propos du commentaire de Gorkem:

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

Cela fonctionne dans RAD. J’ai configuré l’assemblage de déploiement de mon projet pour qu’il corresponde à la structure de génération WebSphere et déplace mes dépendances Maven dans le dossier WEB-INF \ lib (Projet -> Propriétés -> Assemblage de déploiement -> Ajouter -> Entrées de chemin de construction Java -> Dépendances Maven).

entrez la description de l'image ici

Cette configuration m’a permis de construire la guerre avec succès et je peux exporter le fichier EAR généré à partir de RAD et le déployer manuellement sur mon serveur local, et tout fonctionne correctement. Cependant, les options de déploiement automatique et “exécuter sur le serveur” ne fonctionnent pas avec cela seul. Pour une raison quelconque, il déploiera toutes les dépendances transitives (portlet-api, servlet-api, etc.) vers WebSphere, ce qui provoque des conflits et des explosions.

Par conséquent, j’ai essayé la solution de pom proposée par McDowell avec un succès limité. Elle ne compilait pas et n’exécutait pas mes tests correctement. Cependant, lorsque j’ai supprimé les tests, elle a été déployée avec succès depuis RAD. Je travaille sur son pom pour inclure les tests et posterai mes résultats ici lorsque je le ferai fonctionner.

J’ai également trouvé ce fil qui contient un lien vers un document IBM 2010 sur la manière “officielle” d’intégrer Maven et RAD. J’y travaille et je verrai quelle solution répond le mieux à mes besoins. Encore une fois, si / quand je le fais fonctionner, je posterai plus d’informations ici.


Mise à jour du 21/11/2011

IBM a produit un document mis à jour pour l’intégration Maven / RAD. Vous pouvez le trouver ici . Je l’ai parcouru et c’est assez bien fait. Il contient étape par étape des captures d’écran et un peu de contexte sur Maven, M2eclipse et WTP. Chuck décrit dans le document quelques désagréments mais a finalement permis à notre équipe de commencer à utiliser Maven dans un environnement WebSphere Portal sans abandonner les conventions Maven. J’espère que d’autres le trouveront utile.