Utiliser Maven 2
Date de publication : 04/08/2008 , Date de mise à jour : 04/08/2008
9. Integration avec Eclipse
9.1. External builder
9.1.1. Avantages
9.1.2. Inconvénients
9.2. m2Eclipse plugin
9.2.1. Avantages
9.2.2. Inconvénient
9.3. q4e
9.3.1. Avantages
9.3.2. Inconvénient
9. Integration avec Eclipse
Maven a pour but de gérer le projet pendant tout son cycle de vie. Depuis le poste
de développement jusqu'à la livraison en production (du moins sur le papier).
Eclipse permet à l'utilisateur d'agir efficacement sur le projet, pour cela il a
besoin de le comprendre en détail.
Conclusion, les deux outils utilisent une configuration complète et indépendante du
projet.
"Intégrer" les deux outils correspond alors à faire communiquer les configurations
de Maven et d'Eclipse. La partie critique correspond souvent à fournir à Eclipse le
classpath qui correspond à la gestion des dépendances de Maven.
Plusieurs stratégies qui peuvent être mises en place pour cela. Les 3 qui sont
présentées ici sont viables, elles présentent chacun leurs avantages et
inconvénient.
9.1. External builder
Maven propose son plugin d'intégration pour Eclipse. Sa principale compétence
est d'être capable d'écrire la configuration Eclipse à partir de son pom.xml.
Ce mécanisme est sûr et abouti. La configuration Eclipse générée par Maven est
toujours valide et lorsque la configuration existe déjà, Maven se contente de la
compléter pour la bonne marche du projet. Noter que l'utilisation du plugin peut
être afinée notamment pour activer la prise en charge de WTP.
mvn eclipse:eclipse -Dwtpversion=1.5
|
Pour avoir tous les détails, se référer au site du plugin : maven-eclipse-plugin
Pour automatiser les développements, il faut alors configurer le lancement des
commandes Maven dans les "builders" Eclipse. Pour cela, il faut aller dans les
propriété du projet, puis builders. Ajouter un nouveau builder externe avec la
configuration suivante :
- location : l'emplacement de mvn.bat
-
working directory : le projet sur lequel on veut exécuter la tâche
- arguments : la ou les directives Maven à utiliser.
On associera le plus souvent le déclenchement du builder uniquement sur les
builds manuels afin de ne pas avoir Maven qui se déclenche dès qu'on sauvegarde
un fichier.
Avec ce mécanisme, le plus pratique est de créer le builder suivant :
- se déclenche sur la modification du fichier pom.xml
- exécute la directive eclipse:eclipse
- met à jour tout le projet une fois terminé
Avec ce builder, les dépendances du projet seront toujours à jour sous réserve
d'avoir demandé explicitement un build.
|
Pour notre projet, utiliser le maven plugin eclipse donner cela :
|
Utilisation du plugin Eclipse pour Maven |
~/cours-maven-example$ mvn eclipse:eclipse
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Projet d'exemple pour le cours Maven
[INFO] task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse]
[INFO] Using source status cache: d:\workspace\IL\cours-maven-example\target\mvn-eclipse-cache.properties
[INFO] Wrote settings to D:\workspace\IL\cours-maven-example\.settings\org.eclipse.jdt.core.prefs
[INFO] Wrote Eclipse project for "cours-maven-example" to d:\workspace\IL\cours-maven-example.
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Tue Aug 12 16:18:08 CEST 2008
[INFO] Final Memory: 4M/8M
[INFO] ------------------------------------------------------------------------
|
9.1.1. Avantages
Cette méthode permet de gérer précisément les directives Maven à utiliser et
leur déclenchement.
9.1.2. Inconvénients
A force d'édition des fichiers de configuration d'Eclipse par Maven,
l'interface a tendance à perdre les pédales. Les fichiers de configuration
ne sont jamais altérés mais Eclipse a parfois besoin de plusieurs "F5" pour
retrouver sa configuration.
9.2. m2Eclipse plugin
Le plugin m2Eclipse est le plus abouti des plugins Maven pour Eclipse à l'heure
actuelle (juillet 2008). Ses principales fonctionnalités sont de gérer une
librairie dynamique représentant les dépendances de Maven et de fournir un
builder Maven simplifié.
A noter qu'il est également intégré dans le plugin eclipse de Maven, aussi vous
pouvez utiliser
Pour pousser l'intégration jusqu'au projet web lançable avec Eclipse WTP, vous
pouvez utiliser
mvn eclipse:m2eclipse -Dwtpversion=1.5
|
m2eclipse propose maintenant une interface complète pour importer un projet
Maven dans Eclipse. Soit à partir d'un système de gestion de ressource :
- Cliquer sur File -> Import ....
- Sélectionner Other -> Checkout Maven project from SVN
Soit à partir du projet sur le disque dur :
- Cliquer sur File -> Import ....
- Sélectionner General -> Maven project
|
Pour notre projet, le projet avec m2eclipse se présentera ainsi :
|
9.2.1. Avantages
Permet de s'abstraire du builder eclipse:eclipse et des problématiques de
rechargement de la configuration Eclipse.
9.2.2. Inconvénient
m2eclipse a récemment effacé ses principales faiblesses et se positionne
comme le projet qui fera un jour partie intégrante d'Eclipse.
Il n'a de faiblesse qu'en cherchant les fonctionnalités avancées de Maven,
comme par exemple le filtrage (bien qu'il propose des solutions) ou encore
la gestion des projets multi-modules.
9.3. q4e
q4e est le principal concurent de m2eclipse. La version 0.7 actuellement
disponible est déjà très stable.
En terme de service, il propose la gestion dynamique des dépendances Maven tout
comme m2Eclipse. Il propose également plusieurs interfaces dont une pour lancer
des directives.
9.3.1. Avantages
Il est déjà opérationnel et se montre très prometteur.
9.3.2. Inconvénient
Le fonctionnel semble encore trop limité pour les projets utilisant des
fonctionnalités avancées de Maven.
Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à
votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre
intellectuelle protégée par les droits d'auteurs. Copyright Matthieu Lux . Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu
: textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous
encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets.