counter

Visitor Map

mardi 18 mai 2010

Maven 3

Maven 3 est encore dans sa version bêta, mais il promet ! Au Paris JUG, Arnaud Heritier et Nicolas De Loof nous l'ont présenté. Voici mes retours !

Migrons à Maven 3 !

Est-il facile à migrer ?
Il suffit de changer votre version de maven ! Et voilà, c'est fini !

Est-il compatible avec les versions précédentes ?
Oui, la compatibilité est assurée à un 99,99%
Les exceptions qu'on peut trouver sont par rapport aux descripteurs de projet qui sont encore beaucoup plus stricts que dans ses versions précédentes, ainsi que le Maven Site ou la commande eclipse:eclipse qui sont en phase de correction.

Les développements de cette version ont été focalisés pour assurer la compatibilité descendante, affirmation avalisée par les efforts en développement des tests unitaires.

Cette nouvelle version est en effet une refonte complète. Elle se caractérise par les retours d'expérience et l'apprentissage que ses concepteurs et développeurs ont obtenu à partir des versions 1 et 2.
La version 1 de Maven était inmaintenable ; la version 2 était plus maintenable et incluait le support de plugins. L'architecture était améliorée, mais encore pas très extensible et elle manquait de souplesse rendant très compliqué (parfois quasiment impossible) d'entrer dans le code.

Nouveautés :

> Java 5
Et tous les avantages qui vont avec, les generics par exemple. Le code source est plus propre, et la documentation a été nettement améliorée, essentiellement pour bien distinguer les API publics des internes. Grâce à tout cela, le développement des nouveax plugins et fonctionnalités est rendu plus accessible.

> Plugins interactifs
Les plugins restent toujours indépendants, mais ils sont capables de s'adapter au contexte d'exécution, ce qui est traduit par la disparition du plugin Aggregator et la naissance de "Build Plan". On pourra, par exemple, lister les tests à exécuter à l'avance. Cela évitera de les passer plusieurs fois, contrairement à aujourd'hui où les plugins ne savent pas quels sont les tests qui ont été déjà joués.

En conséquence, le plugin Aggregator ne devra plus jamais être utilisé.


> Rencontre OSGi
L'outil Tycho est une sorte de portage de Maven 2 pour les applications basées sur OSGi. Eclipse est basé sur un modèle OSGi. Maven 3 inclut Tycho, ce qui permet leur meilleure intégration. Le plugin M2Eclipse s'appuie sur Tycho.

> L'intégration avec eclipse
Maven 2 permettait seulement de réaliser des builds complets. Maven 3 permettra de laisser à eclipse l'ensemble des étapes qu'il sait faire, la compilation par exemple, et de réaliser en maven ce qui reste. Le plugin d'eclipse retirera les tâches du "build plan" évitant ainsi tout conflit.

> Pom Polyglotte
Maven 3 permettra d'écrire le fichier pom.xml en Groovy ou Python par exemple, en plus de XML.

Prochainement :
  • L'équipe maven vise à remplacer le conteneur Plexus par Google Guice ou Spring. Rien n'a encore été décidé.
  • Éliminer la maintenance du nom de version sur le POM
  • Mixins : Permettront de faire un héritage multiple mais pas forcement hiérarchique
  • Évolution de la syntaxe : permettra, par exemple, de définir des exclusions globales et pas seulement au niveau de chaque dépendance
  • Parallélisation des builds : permettra aux grosses applications multimodule de paralléliser les builds de ses modules indépendants en gagnant du temps de manière significative.
  • Maven Shell
Pourquoi continuer avec Maven, notanment Maven 3 ?
Ce n'est pas pour les nouvelles fonctionnalités que cette version apporte - on constate que n'il y en a pas trop encore - mais plutôt pour les raisons suivantes :
  • Maven 3 est plus performant
  • Les logs, en cas d'erreur, sont plus lisibles
  • Le reporting est amélioré
  • La communauté est mature et expérimentée. Nous comptons sur un grand nombre de développeurs et utilisateurs senior. De plus, la version 3 a attiré l'attention des nouveaux développeurs, ce qui a fait revivre le projet.
Une bonne référence en français :
Apache Maven de Pearson, écrit par les deux speakers !

http://www.pearson.fr/livre/?GCOI=27440100730370


Lancez-vous, migrez !

Aucun commentaire:

Enregistrer un commentaire