-
Bonnes pratiques ?
Bonjour à tous,
Tout d'abord merci de prendre le temps de me lire.
Je viens vous voir pour vous demander quelles sont les bonnes pratiques dans le cadre d'une génération d'un projet eclipse via le maven-eclipse-plugin (mvn eclipse:eclipse).
Lorsque je package mon appli web (mvn package), les jars nécessaires à la web app sont bien copiés dans le WEB-INF/lib du répertoire target. Le war est correct et peut être déployée.
Malheureusement, lorsque je genere mon projet pour eclipse pour la phase de développement (mvn eclipse:eclipse), les jars ne sont pas ajoutés dans mon dossier webapp/WEB-INF/lib.
Je suis obligé :
- soit de les copier manuellement du WEB-INF/lib du répertoire target vers mon dossier WEB-INF/lib du dossier webapp des sources.
- soit d'utiliser la commande mvn war:inplace (bien qu'elle copie aussi les .class, et cette étape, je veux la laisser à eclipse)
En gros, j'arrive bien a maveniser mon projet, mais j'ai du mal a voir une bonne intégration "automatique" avec eclipse. J'aimerais ne pas avoir a faire d'étapes manuelles dans mon IDE et utiliser seulement la tache mvn eclipse:eclipse pour avoir un projet viable directement.
Si je n'ai pas été clair, n'hésitez pas à demander des eclaircissements.
-
L'idée de maven est de séparer les dépendances (jars) de tes sources.
Elles n'ont donc à priori rien à faire dans ton web-inf/lib.
De plus, eclipse:eclipse permet de générer les descripteurs eclipse de telle sorte qu'Eclipse pointe vers les dépendances de ton repository.
Là encore ce n'est pas fait pour les copier ailleurs.
Pourquoi as-tu vraiment besoin de les copier dans web-inf/lib ?
Ton war généré dans ton dossier targer ne te suffit pas ?
-
Tout d'abord merci pour ta réponse.
En fait, maven me génère un projet de type Java Project. Seulement , c'est un projet de type Web (ou Dynamic Web Project) que j'aimerais avoir car actuellement les jars sont référencés dans le classpath de l'application mais ne sont pas présentes dans le WEB-INF/lib.
Seul hic, je peux pas donner une nature "Dynamic Web Project" car c'est un projet de type GWT (1.6.4). Le plugin gwt pour eclipse, qui permet de développer du GWT en "hosted mode", a besoin des librairies dans le WEB-INF/lib.
Du coup, lorsque je fais un mvn eclipse:eclipse pour générer mon projet, j'ai bien les references des jars dans eclipse mais des warnings me disant que les jars referencés ne sont pas dans le WEB-INF/lib.
J'aurais voulu qu'après un mvn eclipse:eclipse, les jars soient dans le WEB-INF/lib des sources et pas référencés uniquement comme étant dans le classpath de build de l'application.
Si je ne suis pas bien clair, hésitez pas.
Ps : j'utilise le maven-gwt-plugin pour compiler mon projet
Le vrai problème c'est si on bosse a 10, chacun doit faire les modifs dans son IDE après un mvn eclipse:eclipse. Je voudrais que ce soit automatisé par maven.
En dehors même du contexte GWT, lorsque vous generez une webapp jEE avec mvn eclipse:eclipse, je suppose que vous travaillez avec un war exploded en phase de développement pour avoir les modifs a chaud. Si vous travaillez avec un war exploded, vous devez bien copier les libs gérés par maven dans le WEB-INF/lib des sources? Ou alors peut être bossez vous avec le target exploded généré par maven après un mvn package?
Bref j'ai besoin de savoir comment vous gérez tout ca dans le monde de l'entreprise parce que la liason maven <-> dév sous eclipse / gestion des libs / war exploded me parait encore un peu abstraite :D
-
Bonjour,
je suis également à la recherche des bonnes pratiques... et je cherche un moyen de déployer en 'direct' ma webapp maven dans mon serveur tomcat eclipse.
Je voudrai aussi que mes développeurs n'aient pas à générer le WAR à chaque fois qu'ils veulent tester leur dev.. quelle est la pratique ?
merci
-
Bonjour,
Désolé pour la réponse tardive,
en fait pour que les libraires soit copiées sous web-inf/lib il faut configurer le eclipse maven plugin pour que le projet ait comme facet wtp.
fais une recherche dans ce sens tu trouvera pas mal de trucs.
Bonne chance
-
Apres quelques reherches, j'ai trouvé différentes solutions pour développer sous eclipse un projet WEB maven... mais rien de très stable à mon gout.
Soit, il faut lancer la tache eclipse -wtpversion.. qui recopie les librairies maven dans les lib de la webapp... mais il faut le faire à chaque ajout d'une dépendance dans le pom.. et aller modifier la conf de deploiement dans eclipse... je trouve peu satisfaisant.
Je suis en train d'explorer l'extension WTP du plugin M2.. qui me semble être exactement ce que je cherche.. sauf que mon environnement de developpement est devenu très instable...
Je suis étonné qu'il n'y ai aucune pratique bien intégrée dans eclipse.. ?
-
je vois pas trop vos besoin les deux !! est ce que vous pouvez reformuler vos souci ?
-
Alors pour ma part, je voudrai savoir comment fonts les développeurs pour développer confortablement sous eclipse des appli WEB en utilisant maven...
J'ai essayé plusieurs méthodes, mais ça reste systématiquement moins confortable avec maven que sans. (en ce qui concerne une appli web)
-
si vous êtes débutant avec maven sous eclipse je te conseil d'installer le plugin maven2 pour eclipse et la ta déja l'ensemble préparamétré:
- il te propose un enssmble de projet simple ou modulaire (spring, struts, hibernate, jsf,...) avec maven2
-
- si ta des questions n'hésiter pas