Importer un projet Maven dans Eclipse en 5 minutes
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
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 |
|
 |
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>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.8.2</version>
</dependency>
<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 |
|
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
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
On peut ensuite importer le projet dans Eclipse, pour cela il faut utiliser le menu "File>Import"

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

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
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
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
Après validation, Eclipse va demander de reconstruire le projet, ce qu'il faut accepter.

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
Les classes Java sont dans "src>main>java"

Classes dans src>main>java
Les classes de test sont 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
Et voilà...
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
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>
|
 |
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.
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".
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.
 |
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


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.