Comme annoncé dans un précédent article, j’ai testé Maven avec NetBeans pour constater l’état de l’intégration entre ces deux outils. Autant le dire tout de suite, celui ci n’a rien à voir avec celui d’Eclipse : c’est le jour et la nuit !
Cela faisait en fait plusieurs années que je n’avais pas testé cet IDE (ça remonte avant même la sortie d’Eclipse 3.0 !) et la prise en main après toutes ces années d’Eclipse a été déroutante. Je n’ai pas retrouvé tous mes raccourcis, mais voilà un mois que j’utilise cet IDE sans envie de revenir en arrière !
L’installation du plugin Maven pour Netbeans se fait simplement via l’interface d’ajouts de plugins, sans ajouter de dépot particulier. Une fois installé, on a l’impression que l’IDE n’a jamais été conçu autrement que pour travailler sur des projets Maven. Je passe sur l’import (simplissime) d’un projet Maven qui n’est pas l’objet de cet article…
Une fois un projet ouvert (avec des modules tant qu’à faire) toute l’interface et les menus s’adaptent au projet Maven. En dépliant le projet parent, on découvre une liste de modules, les librairies rangées par scope, et les répertoires habituels de sources, de tests et le reste… Le menu contextuel d’un projet permet de lancer les commandes Maven les plus courantes (build, clean and build, test), de modifier les profils (récupérés dynamiquement depuis le pom), etc…
NetBeans utilise exclusivement le pom.xml et ne pollue pas le workspace comme Eclipse de multiples fichiers (.project, .classpath, .settings, etc… à ajouter au svn ignore). Le seul fichier spécifique est créé lors de l’ajouts de commandes définies par l’utilisateur sur les Goals Maven à exécuter pour un projet.
Le lancement ponctuel de fichiers de tests est aisé. Un simple clic droit sur le fichier JUnit, puis “Run file” et le tour est joué : le build Maven se déroule pour lancer l’unique fichier de test. La modification du nom de l’artefact renomme le projet en temps réel, il n’y a pas de décalage entre les erreurs remontées par l’IDE et ceux du build Maven… Bref tout marche pour le mieux même si je n’ai sans doute pas poussé l’outil jusqu’au bout. Pour ceux qui aimeraient approfondir le sujet il y a un wiki sur le site de NetBeans qui couvre le sujet.
Un bémol tout de même, si NetBeans sais gérer plusieurs répertoires sources pour un projet Java classique, il semble qu’il ai quelques difficultées à gérer le plugin Maven qui remplit ce rôle. Nous avons en effet le code suivant dans un fichier pom.xml sur un projet :
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>
${basedir}/src/main/axisgenerated
</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Mais le problème c’est que NetBeans n’identifie pas ce répertoire comme source et est incapable de résoudre les imports sur ces fichiers… En revanche si l’IDE signale des erreurs, le build Maven lui fonctionne correctement (sans surprise). Peut être que quelqu’un connaît une autre façon de faire qui fonctionne pour répondre à ce besoin ?
No Translations

