Importer un projet Maven dans Eclipse en 5 minutes

Thierry

Date de publication : 21 décembre 2011. Date de mise à jour : 19 janvier 2012.

Par Thierry Leriche-Dessirier (www.icauda.com)
 

Ce mini article montre (par l'exemple) comment compiler une application Java-Maven et l'importer dans Eclipse en quelques minutes. 10 commentaires Donner une note à l'article (5)

Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites      



I. Introduction
I-A. A propos
I-B. Avant de commencer
I-C. Mise-à-jour
II. Action
II-A. Télécharger le projet d'exemple
II-B. Installer le projet avec Maven
II-C. Préparation de l'import dans Eclipse
II-D. Import dans Eclipse
III. Conclusions
IV. Remerciements
V. Annexes
V-A. Configuration Maven
V-B. Compile Vs Install
V-C. Lien


I. Introduction

Dans ce document, nous allons voir comment compiler une application Java, créée à l'aide de Maven, puis, comment l'importer dans Eclipse.


I-A. A propos

Découvrir une technologie n'est pas chose facile. En aborder plusieurs d'un coup l'est encore moins. Partant de ce constat, cet article a été écrit pour aller à l'essentiel. Les points importants sont présentés dans le corps de l'article et les éléments secondaires sont expliqués en annexes.


I-B. Avant de commencer

Pour suivre ce tutoriel, il est nécessaire d'avoir installé les éléments suivants :

  • Java JDK 5 (ou plus) ;
  • Eclipse 3 (ou plus);
  • Maven 2/3
Pour écrire ce tutoriel, j'ai utilisé les versions suivantes :

  • Java JDK 1.6.0_24-b07 ;
  • Eclipse Indigo 3.7 JEE 64b ;
  • Maven 3.0.3

I-C. Mise-à-jour

19 janvier 2012 : Ajout d'une proposition de configuration du fichier "mvn.bat" en annexes.


II. Action


II-A. Télécharger le projet d'exemple

Durée estimée : 1 minute

Pour commencer, je vous propose de télécharger le fichier Zip "calculette.zip", contenant un projet Java-Maven d'exemple, puis de le dézipper vers le dossier "C:\dvp\calculette\"

Le dossier "C:\dvp\calculette\" doit alors contenir les éléments suivants :

  • Dossier "src" ;
  • Fichier "pom.xml" ;
  • Fichiers "license.txt" et "README.txt" (ces deux derniers fichiers ne sont pas importants dans ce tutoriel)

II-B. Installer le projet avec Maven

Durée estimée : 1 minute

Nous allons ouvrir un terminal (commande "cmd" sous Windows) et nous placer dans le dossier "C:\dvp\calculette\"
Se placer dans le bon dossier

c:
cd \
cd dvp
cd calculette
Puis nous allons installer (compiler) le projet à l'aide de Maven.
Commande de compilation du projet

mvn compile
info Maven va télécharger un certain nombre de librairies. Il faut donc une connexion Internet.
Maven se sert du fichier "pom.xml" pour savoir quoi faire. Dans l'exemple, le fichier indique qu'il faut avoir les dépendances vers les frameworks JUnit et Guava.
Extrait du fichier pom.xml

<dependencies>
	<!-- Junit -->
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<scope>test</scope>
		<version>4.8.2</version>
	</dependency>

	<!-- Guava -->
	<dependency>
		<groupId>com.google.guava</groupId>
		<artifactId>guava</artifactId>
		<version>10.0</version>
	</dependency>
</dependencies>
En fonction des éléments déjà présents sur le disque dur, le résultat de la compilation devrait ressembler à la sortie suivante.
Commande d'installation du projet
			
C:\dvp\calculette>mvn compile

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Calculette 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ calculette ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ calculette ---
[INFO] Compiling 5 source files to C:\dvp\calculette\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.205s
[INFO] Finished at: Thu Dec 15 07:15:54 CET 2011
[INFO] Final Memory: 6M/59M
[INFO] ------------------------------------------------------------------------
C:\dvp\calculette>
Durant ce traitement, Maven crée automatiquement le dossier "target" qui contient le programme compilé.


II-C. Préparation de l'import dans Eclipse

Durée estimée : 30 secondes

Il faut maintenant créer les fichiers spécifiques à Eclipse, toujours à l'aide de Maven.
Génération des fichiers de configuration d'Eclipse
	
mvn eclipse:eclipse
En fonction des éléments déjà présents sur le disque dur, le résultat Maven devrait ressembler à la sortie suivante.
Génération des fichiers de configuration d'Eclipse
	
C:\dvp\calculette>mvn eclipse:eclipse

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Calculette 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO]  maven-eclipse-plugin:2.8:eclipse (default-cli) @ calculette 
[INFO]
[INFO]  maven-eclipse-plugin:2.8:eclipse (default-cli) @ calculette 
[INFO]
[INFO] --- maven-eclipse-plugin:2.8:eclipse (default-cli) @ calculette ---
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "calculette" to C:\dvp\calculette.
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.916s
[INFO] Finished at: Wed Dec 14 07:16:22 CET 2011
[INFO] Final Memory: 7M/108M
[INFO] ------------------------------------------------------------------------
C:\dvp\calculette>
Durant ce traitement, Maven crée les fichiers ".classpath" et ".projet" dont Eclipse a besoin.


II-D. Import dans Eclipse

Durée estimée : 3 minutes

On peut donc maintenant lancer Eclipse. Dans la suite, nous allons supposer que c'est la première fois qu'on importe un projet Maven dans Eclipse.

Pour commencer, il faut aller vers le Workbench (espace de travail) d'Eclipse en cliquant sur l'icône en haut à droite.

Accueil
Accueil
La première fois, dans ma version d'Eclipse (JEE) on arrive sur la perspective "Java EE". On a besoin de la perspective "Java" simple. Pour l'avoir, il faut utiliser le menu "Window>Open perspective>Java"

Workbench Java EE
Workbench Java EE
Workbench Java EE
Workbench Java
On peut ensuite importer le projet dans Eclipse, pour cela il faut utiliser le menu "File>Import"

Import
Import
Il faut d'abord sélectionner l'emplacement du projet sur le disque dur.

Import
Import
Import
Import
Si c'est la première fois qu'on importe un projet Maven, Eclipse devrait indiquer des erreurs car il manque un peu de configuration.

Projet ouvert avec des erreurs
Projet ouvert avec des erreurs
Pour configurer la variable manquante, il faut utiliser le menu "Window>Preferences". Dans la popup qui s'ouvre, il faut aller dans la rubrique "Java>Build Path>Classpath Variables" et cliquer sur le bouton d'ajout d'une nouvelle variable.

Configuration
Configuration
Il faut ajouter une variable nommée "M2_REPO" et indiquer le dossier dans lequel sont stockées les librairies utilisées par Maven (cf. annexes)

M2_REPO
M2_REPO
Après validation, Eclipse va demander de reconstruire le projet, ce qu'il faut accepter.

Rebuild
Rebuild
Les erreurs ne sont plus présentes et on a désormais la liste des dépendances utilisées (ici Guava, JUnit et JSR305)

Dépendances
Dépendances
Les classes Java sont dans "src>main>java"

Classes dans src>main>java
Classes dans src>main>java
Les classes de test sont dans "src>test>java"

Tests dans src>test>java
Tests dans src>test>java
On peut vérifier que tout est bon en lançant la classe de test "SimpleCalculetteTest" (clic droit sur le nom de la classe de test, puis "Run as>Junit test".

JUnit
JUnit
Et voilà...

Une petite vidéo de ce tutoriel est disponible à l'adresse http://thierry-leriche-dessirier.developpez.com/videos/video_importer-projet-maven-dans-eclipse-5-min.mp4. Comme j'avais déjà lancé les commandes avant de filmer, les traces dans la console ne sont pas exactement les mêmes que dans l'article mais l'essentiel y est.


III. Conclusions

Pour un premier import dans Eclipse, c'était simple, non ? Pour les prochains imports, certaines étapes ne seront plus nécessaires, comme par exemple l'ajout de la variable "M2_REPO".


IV. Remerciements

Je tiens à remercier, en tant qu'auteur de tutoriel rapide, toutes les personnes qui m'ont aidé et soutenu. Je pense tout d'abord à mes collègues qui subissent mes questions au quotidien mais aussi à mes contacts et amis du web, dans le domaine de l'informatique ou non, qui m'ont fait part de leurs remarques et critiques. Bien entendu, je n'oublie pas l'équipe de developpez.com qui m'a guidé dans la rédaction de cet article et m'a aidé à le corriger et le faire évoluer, principalement sur le forum.

Plus particulièrement j'adresse mes remerciements, par ordre alphabétique, à Gueritarish et keulkeul

Thierry

V. Annexes


V-A. Configuration Maven

La configuration de Maven se fait dans le fichier "settings.xml" dans le dossier "conf". Ce fichier indique par exemple l'emplacement du "Repository Maven" sur le disque.

<localRepository>C:\dev\mavens\repository</localRepository>
info Par défaut, sous Windows XP, le dépôt local (repository) se trouvera probablement dans "C:\Documents and Settings\USERNAME\.m2\repository" et sous Windows Vista, il se trouve dans "C:\Users\USERNAME\.m2\repository". Sur les systèmes Unix, le repository Maven se trouve dans "~/.m2/repository".
idea C'est cette valeur qui est utilisée dans Eclipse pour la variable "M2_REPO".
Pour choisir la version de Java que je souhaiter utiliser avec Maven, j'ai pris l'habitude de modifier le fichier "mvn.bat" (sous Windows) en ajoutant la ligne suivante au début du fichier. Il y a d'autres moyens de le faire mais je trouve que celui-ci est le plus simple/rapide.

set JAVA_HOME=C:\dev\javas\jdk1.6.0_24
Comme je travaille sur de nombreux projets en même temps, avec des configurations différentes, j'ai besoin de vérifier rapidement si j'utilise bien le bon Maven. Pour cela j'ai simplement ajouté un "echo" dans mon fichier "mvn.bat".

echo Maven 3 de Thierry
Du coup, lorsque je lance une commande Maven, le début de la trace ressemble aux lignes suivantes.

C:\dvp\calculette>mvn clean install eclipse:eclipse

C:\dvp\calculette>echo Maven 3 de Thierry
Maven 3 de Thierry

C:\dvp\calculette>set JAVA_HOME=C:\dev\javas\jdk1.6.0_24
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Calculette 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------

...

[INFO] Wrote Eclipse project for "calculette" to C:\dvp\calculette.
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.985s
[INFO] Finished at: Thu Jan 19 20:39:52 CET 2012
[INFO] Final Memory: 14M/60M
[INFO] ------------------------------------------------------------------------
C:\dvp\calculette>

V-B. Compile Vs Install

Nous avons vu qu'il faut utiliser la commande "mvn compile" pour compiler le programme. Toutefois, par habitude, j'utilise plutôt la commande "mvn install" qui fait bien plus de choses d'un seul coup. Je l'associe en général avec la commande "mvn clean" qui nettoie les éventuelles précédentes compilations ainsi qu'à la commande "mvn site" qui génère de la documentation. En début de projet, j'ai même pris l'habitude d'associer la commande "mvn eclipse:eclipse" pour préparer les fichiers de l'IDE.

idea Pour faire bonne mesure, je crée un fichier nommé "build.bat" contenant toutes ces commandes pour ne pas avoir à tout retaper à chaque fois.

C:\dvp\calculette>mvn clean install site eclipse:eclipse

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Calculette 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ calculette ---
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ calculette ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ calculette ---
[INFO] Compiling 5 source files to C:\dvp\calculette\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ calculette ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ calculette ---
[INFO] Compiling 2 source files to C:\dvp\calculette\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ calculette ---
[INFO] Surefire report directory: C:\dvp\calculette\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.thi.calculette.SimpleCalculetteTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.419 sec

Results :

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ calculette ---
[INFO] Building jar: C:\dvp\calculette\target\calculette-1.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ calculette ---
[INFO] Installing C:\dvp\calculette\target\calculette-1.0-SNAPSHOT.jar to C:\dev\mavens\repository\com\thi\calculette\1.0-SNAPSHOT\calculette-1.0-SNAP
SHOT.jar
[INFO] Installing C:\dvp\calculette\pom.xml to C:\dev\mavens\repository\com\thi\calculette\1.0-SNAPSHOT\calculette-1.0-SNAPSHOT.pom
[INFO]
[INFO] --- maven-site-plugin:2.0.1:site (default-site) @ calculette ---
Downloading: http://repository.jboss.org/nexus/content/groups/public/org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom (6 KB at 1.8 KB/sec)
Downloading: http://repository.jboss.org/nexus/content/groups/public/org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar (41 KB at 102.6 KB/sec)
Downloading: http://repository.jboss.org/nexus/content/groups/public/org/apache/maven/skins/maven-default-skin/maven-metadata.xml
Downloading: http://repo1.maven.org/maven2/org/apache/maven/skins/maven-default-skin/maven-metadata.xml
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/skins/maven-default-skin/maven-metadata.xml (341 B at 0.8 KB/sec)
Downloaded: http://repository.jboss.org/nexus/content/groups/public/org/apache/maven/skins/maven-default-skin/maven-metadata.xml (332 B at 0.1 KB/sec)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/skins/maven-default-skin/1.0/maven-default-skin-1.0.jar
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/skins/maven-default-skin/1.0/maven-default-skin-1.0.jar (8 KB at 18.1 KB/sec)
[INFO]
[INFO]  maven-eclipse-plugin:2.8:eclipse (default-cli) @ calculette 
[INFO]
[INFO]  maven-eclipse-plugin:2.8:eclipse (default-cli) @ calculette 
[INFO]
[INFO] --- maven-eclipse-plugin:2.8:eclipse (default-cli) @ calculette ---
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "calculette" to C:\dvp\calculette.
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.826s
[INFO] Finished at: Thu Dec 15 07:28:26 CET 2011
[INFO] Final Memory: 17M/61M
[INFO] ------------------------------------------------------------------------
C:\dvp\calculette>

V-C. Lien

Pour aller plus loin avec Maven, je conseille la lecture du tutoriel de Matthieu Lux sur developpez.com à l'adresse http://matthieu-lux.developpez.com/tutoriels/java/maven/



               Version PDF (Miroir)   Version hors-ligne (Miroir)

Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Thierry Leriche-Dessirier. 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.

 
 
 
 
Partenaires

Hébergement Web