#devoxxfr – Maven, Java9 et Jigsaw

Après le gentil JGiven, on passe au film d’horreur modulaire. Coup de bol, Rémi Forax m’a donné quelques clés pour comprendre l’histoire (ça fait vraiment trop people de sortir des phrases comme ça).

Java6 est mort, Java7 est mourant, tout comme maven2 …
Et Java9 commence à faire du Jigsaw (visible danbs le build java9 depuis le début du mois).

Actuellement, un build simple avec le dernier JDK 9 fonctionne avec maven. Et même la création d’un JAR fonctionne. Par contre, générer un JAR de javadoc ne fonctionne pas du tout.

Et donc, clairement, maven marche en java9. MAIS certains plugins devront évoluer (jar, javadoc, …). Mais heureusement, il y a une page dans le wiki de Maven qui liste les versions minimales et toutes les informations associées.

Juste en passant, le build de maven ne dure qu’une minute. C’est rapide !

Une fois qu’on ajoute des modules dans le code, il faut une version récente du maven-compiler-plugin pour supporte Jigsaw. Parce que l’équipe Maven l’a déja corrigé.
Et une fois que ça compile … on teste. Mais là, Surefire ne gère pas encore les modules, et du coup les tests s’exécutent en-dehors des modules. C’est moins bien, mais c’est déja ça.

Mais globalement, tant qu’on ne joue pas à builder de l’OSGi/Jigsaw, tout à l’air bien facile à faire.

Et maintenant, chez Maven, on essaye de modulariser. Mais c’est moins facile, puisqu’il faut nettoyer tous les arrangements faits avec le passé (plusieurs modules qui utilisent le même package, par exemple).

Bon, et maintenant, le morceau compliqué des multi-releases jars : des jars buildables avec plusieurs versions. Ca sera implémenté (joliment, je trouve) avec un projet multi-module : un module basique, et un module par version de Java séparée, et enfin un assembly. ca fait vraiment bien sens, je trouve.

Et lors de la compilation, Hervé nous rappelle qu’il faut utiliser le toolchain maven, pour garantir que le bon compilateur est utilisé.

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