Importer un projet Maven dans Eclipse en 5 minutes

Thierry

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)

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

J'ai fais une vidéo avec toutes ces étapes. Rendez-vous dans le chapitre « conclusion » pour la regarder.

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.

16 novembre 2013 : J'ai mis la vidéo de toutes ces étapes sur Youtube et dans les conclusions.

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
Sélectionnez

c:
cd \
cd dvp
cd calculette

Puis nous allons installer (compiler) le projet à l'aide de Maven.

Commande de compilation du projet
Sélectionnez

mvn compile

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
Sélectionnez

<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
Sélectionnez
			
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
Sélectionnez
	
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
Sélectionnez
	
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à...

Dans les nouvelles versions d'Eclipse, il est possible d'importer directement un projet Maven sans passer par les étapes dans la console. Ça va donc plus vite et c'est plus simple. Néanmoins, à titre personnel, je préfère utiliser la ligne de commande pour conserver une plus grande maitrise, d'autant que je n'ai accès qu'à la ligne de commande en SSH sur mon serveur.

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

Et pour que ce soit plus simple, je vous propose une petite vidéo de toutes ces étapes, en 5 minutes chrono.


Cliquez pour lire la vidéo


Vos retours nous aident à améliorer nos publications. N'hésitez donc pas à commenter cet article sur le forum : 10 commentaires Donner une note à l'article (5)

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.

Extrait de settings.xml
Sélectionnez

<localRepository>C:\dev\mavens\repository</localRepository>

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

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.

Extrait mvn.bat
Sélectionnez

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

Extrait mvn.bat
Sélectionnez

echo Maven 3 de Thierry

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

Trace Maven
Sélectionnez

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.

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

Toutes les commandes d'un coup
Sélectionnez

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/

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

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.