Eclipse IDE : Materialize Maven Projects
J’utilise le plugin Eclipse m2eclipse pour développer mes applications avec Maven. Lors que l’on travaille sur des projets complexes avec plusieurs sous modules, il faut absolument dissocier les modules en projets Eclipse dissociés pour que les classpaths soient bien respectés. C’est pour cela que je me suis souvent demandé comment transformer un projet Maven multi-modules en plusieurs petits projets Maven dans Eclipse. Jusqu’à maintenant, je me suis débrouillé en utilisant la fonctionnalité “Check out as Maven projet…” (extention SVN du plugin m2eclipse), mais cela implique qu’il faille utiliser un projet enregistré sur un serveur de gestion de configuration. Voici comment faire dans le cas sans gestion de configuration :
Créer son projet multi-module
Avec le wizard de création de projet : File -> New -> Project…, créer un nouveau projet Maven puis cocher la case “Create simple project (skip archetype selection)” puis remplir le formulaire suivant :
Le fichier pom.xml doit être généré de la sorte :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <version>0.0.1-SNAPSHOT</version> <artifactId>app-root</artifactId> <packaging>pom</packaging> </project>
Pour construire un ou plusieurs sous module, il faut ouvrir le pom.xml avec l’éditeur pour de fichier POM et cliquer sur l’icone “New module project”. Cette fonctionnalité existe aussi à partir du menu contextuel de la vue “Project explorer”. Voici ce que nous avons pour l’instant :
Matérialiser ses projets Maven
Pour cela il faut importer le sous module comme un nouveau projet : File -> Import... Sélectionner ensuite “Materialize Maven Project”, enfin sélectionner le projet que nous avons créer ci dessus dans la boite de dialogue suivante. Voici le résultat dans eclipse :
Après cette opération vous avez bien tous les sous modules sous la forme de projet Eclipse dissociés.