Apache Maven par Johann AVELINE



Evolution

Maven3

Maven1 et Maven2 ont été développés en parallèle mais les versions suivantes sont basées sur la structure de la deuxième version. Maven2 rencontre encore aujourd'hui un certain nombre de problèmes. L'un des reproches que l'on peut lui faire, d'un point de vue technique, est la grande complexité de son noyau. Ceci fait que peu d'évolutions ont finalement été apportées au cœur de Maven2 durant la vie de ce projet, et que la communauté des développeurs Java s'est peu impliquée dans l'évolution de Maven, hormis par le biais des plugins. Voici une liste non exhaustive des problèmes rencontrés avec Maven2 :

Maven3 arrive donc à grands pas, afin de combler un certain nombre de lacunes de l'actuelle solution de build Maven2. À noter que les utilisateurs du plugin m2eclipse (plugin offrant le support de Maven2 à Eclipse) utilisent déjà Maven3, car ce plugin se base sur cette nouvelle version de l'outil. De même, les dernières versions de NetBeans ou encore d'IntelliJ utilisent cette version de Maven pour construire les projets. Ci-dessous, une liste non-exhaustive des principales modifications effectuées.



Retro-compatibilité

Cette version du moteur de production, utilisé par plus de 3 millions de développeurs Java, a nécessité la mise en place d'un arsenal de + de 600 tests automatisés pour assurer la rétro-compatibilité avec la version 2 et éviter de reproduire les problèmes qu'avait provoqué le passage de la version 1 à la version 2 au sein de la communauté Maven.



Réécriture du noyau

Maven2 a beaucoup souffert d'un code extrêmement lourd de son noyau, rendant ses corrections et ses évolutions difficiles et coûteuses. Un autre inconvénient de cet aspect est la très faible implication de la communauté open source autour du noyau de Maven2, surtout comparée à son implication dans le développement des plugins. La réécriture du cœur de Maven3 vise donc à augmenter l'implication de la communauté des développeurs Java dans son évolution.



Support des processus multi-cœurs

La nouveauté majeure de cette version est le support des processeurs multi-cœurs, plusieurs cores peuvent donc être utilisés simultanément au cours du Build, ce qui réduit de 10 à 40% le temps nécessaire selon divers rapports d'utilisateurs. Maven3 serait donc plus rapide, plus fiable et plus extensible que la version qui l'a précédée selon la fondation Apache.



« Maven shell »

Autre nouveauté « Maven Shell » : une nouvelle extension qui permet d'exécuter des commandes Maven dans un environnement de type Shell (lignes de commandes). Le principal attrait de cette fonctionnalité est d'accroître les performances de l'outil, en particulier grâce à l'utilisation d'un cache qui garde en mémoire les POM (Project Object Model) pour accélérer le processus de Build.



Languages supportés

Maven3 sera capable de gérer des fichiers POM écrits dans un autre format que le XML. Ainsi il sera possible d'écrire les fichiers POM en YAML(une sorte de format de texte brut, formaté d'une façon particulière). Hormis le XML et le YAML, Maven3 pourra également supporter des pom écrits en Groovy. On peut imaginer que la liste de ces langages évoluera avec le temps...

Attention, cette fonctionnalité ne devrait pas être incluse nativement dans Maven3, mais nécessitera l'utilisation d'un plugin particulier. De plus, il est probable que les IDE et les plugins Maven3 ne supportent que le XML, dans un premier temps du moins. Enfin, bien que cela ne soit pas encore arrêté, il est fort possible que le XML soit privilégié pour stocker toutes les informations (méta-données, pom, etc.) au sein des dépôts. Ainsi, le XML devrait rester le langage naturel de Maven3.



<< page précédente page suivante >>

Valid XHTML 1.0!

Maven Logo