Il aura fallu attendre Eclipse 4.3 ( "Eclipse Kepler" : http://www.eclipse.org/kepler/ ) pour que la distribution "Eclipse IDE for Java EE Developers" soit livrée avec les plugins Maven pré-installés.
Kepler (qui pèse un peu plus de 250 Mb) arrive avec :
- Maven Integration for Eclipse ( "m2e" ) ver 1.4.0
- Maven Integration for Eclipse WTP ver 1.0.0
Ces même versions sont disponibles pour Eclipse Juno (mais à ajouter manuellement)
Voici donc comment créer un projet web avec Maven et WTP ...
1) Création du projet
Il s'agit dans un premier temps de créer directement un projet Maven (et non WTP)
en utilisant l' archetype "maven-archetype-webapp"
File / New (ou Alt-Shift-N) / Maven project
Sélection de l'archetype pour "web app" :
Après création, le nouveau projet apparait dans le workspace.
Le nom du projet est l' Artefact Id de Maven
Pour changer le nom il suffit de faire " Refactor / Rename "
2) Structure du projet
La structure du projet est maintenant presque prête.
Mais parfois il manque des répertoires standards de Maven qui n’ont pas été créés (ça semble se produire à partir du deuxième projet créé dans un même workspace).
Ce qui provoque des erreurs au niveau du build path :
Si c'est le cas, il suffit de les ajouter :
- Dans « src/main » : new folder « java »
- Dans « src » : new folder « test/java », et tant qu’on y est « test/resources »
3) Configuration du "pom.xml"
En ouvrant le fichier "pom.xml" on constate qu'il contient assez peu de chose.
Trop peu, puisqu'il n'y a même pas les dépendances aux libraires Servlet/JSP.
Il n'y a donc plus qu'à le compléter en fonction des besoins du projets
Exemples :
* Pour ajouter les JARs nécessaires aux Servlets 3.0 et au JSP 2.2 (Tomcat 7, Jetty 8, Java EE 6)
dans "dependencies" :
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
dans "build/plugins" :
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
dans "build/plugins" :
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
Après avoir enregistrer les modifications du « pom.xml » ,
faire " Maven / Update project… "
pour répercuter la configuration du « pom.xml » sur le projet Eclipse
faire " Maven / Update project… "
pour répercuter la configuration du « pom.xml » sur le projet Eclipse
Le projet doit finalement avoir la structure suivante :
Et il ne doit plus y avoir aucune erreur nul part.
4) Tester le fonctionnement
- Test avec une JSP :
Lancer l’exécution comme s’il s’agissait d’un projet web WTP classique :
Run as / Run on server
On arrive sur la page « Hello world » produite par la JSP « index.jsp »,
si on modifie cette JSP il suffit de rafraîchir la page pour prendre en compte les modifications (comme dans tout projet WTP).
- Test avec une servlet :
Créer une nouvelle servlet dans « src/main/java »
(avec les servlet 3.0 il n’est pas nécessaire de déclarer cette nouvelle servlet dans le web .xml, une annotation suffira)
Conclusion
Avec une installation Eclipse Kepler de base il est maintenant assez simple de gérer des projets web.
Pour ceux qui veulent aller un peu plus loin il ne reste plus qu'à créer ses propres archetypes Maven...
Pour plus d'informations :