IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 chacune 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.

	mvn eclipse:eclipse
			
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.

info Maven Eclipse Plugin
idea 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

	mvn eclipse:m2eclipse
				
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
info m2Eclipse
idea 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.

info q4e

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.

 

Valid XHTML 1.1!Valid CSS!

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.