Build incrémental dans Maven

Récemment en étudiant la possibilité d’améliorer les performances du processus de construction d’artefact sous Maven, j’ai eu l’occasion de découvrir l’article « Un vrai build incremental dans Maven »  (http://blog.ippon.fr/2008/10/13/un-vrai-build-incremental-dans-maven/ ). Cet article décrit les avantages de l’utilisation du plugin maven-incremental-plugin (http://maven-incremental-build.java.net/site/usage.html) qui permet de détecter, lors de la phase « validate » du module, des modifications de ressources, de sources et lancer automatiquement un « clean » sur le module. De fait, la construction d’un module peut être réalisée avec une commande « mvn install » versus « mvn clean install » qui reconstruit complètement un module ce qui peut devenir rapidement contre productif sur de gros projets.

L’un des principaux inconvénients que j’ai pu constater lors de la mise en ouvre de ce plugin est qu’il n’est malheureusement pas supporté par le plugin m2eclipse.
Si vous utilisez Eclipse comme IDE et que vous avez l’habitude de lancer les builds à partir d’Eclipse, il vous faudra malheureusement changer vos habitudes (pour le moment).
Pour ma part j’ai rencontré d’autres diffcultés qui étaient, pour l’essentiel, liées au projet sur lequel j’intervenais. Par exemple, il ne faut pas oublier que la modification d’une ressource génère un « clean » sur le projet ce qui peut parfois introduire des erreurs dans la construction des modules.

L’installation du plugin est très simple, il suffit de le configurer comme suit:
<plugin>
<groupId>net.java.maven-incremental-build</groupId>
<artifactId>incremental-build-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>incremental-build</goal>
</goals>
</execution>
</executions>
</plugin>
et de penser à le désactiver pour le plugin m2eclipse dans la section pluginManagement( si vous utilisez m2eclipse):

<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>net.java.maven-incremental-build</groupId>
<artifactId>incremental-build-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>incremental-build</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>

Il ne vous reste plus qu’à lancer maven en ligne de commande.

http://www.jperf.com

Publicités

A propos jlerbsc

founder of JavaPerf Consulting Http://www.jperf.com
Cet article a été publié dans tech notes. Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s