Nous avons migré sur Maven2 l’ensemble de notre projet en quelques semaines. Cela peut sembler beaucoup et je pense qu’en me lisant, certains n’imaginent pas en fait ce que nous entendions par vraiment migrer vers Maven2. Cela a eu un impact sur la structure du code, l’intégration continue et la mise en ligne de nos versions.
La structure du projet a changé pour bénéficier au meilleur prix de maven2. Merci SVN cette opération s’est effectuée sans aucuns problèmes. Nous avons conservé l’historique de notre projet tout en faisant le choix de commencer une nouvelle branche, et ce parce que la version ANT est encore en production
Maven2 pour simplement remplacer ANT, pourquoi pas ? En effet, terminé la maintenance à la main des scripts ANT, et finalement la nécessité d’avoir un gars un peu « touchy » en Ant pour que la build passe de 10mn à 4mn. Maven2 s’en sort bien.
Concernant les dépendances internes, les JAR proprietaires qui n’existent pas sur le repository ibiblio, rapidement nous nous sommes posés la question d’installer un proxy maven2. Après avoir testé le proxy maven2 proposé par défaut, j’ai trouvé un très bon soft à la fois proxy et à la fois repository pour Maven2: Artifactory. Simple à installer, ce proxy nous permet de mettre en cache les libs standards. Il nous permet aussi d’effectuer nos releases vers ce serveur, afin que les produits utilisant notre framework puissent se compiler à partir de maven2.
Pour gérer la version d’un produit avec maven, le plugin release est vraiment pratique. Il se charge de créer un tag, mettre à jour l’ensemble des pom.xml et enfin d’uploader vers Artifactory la version compilée. Pas évident à mettre en place mais vraiment top au final.
L’intérêt de Maven est aussi de pouvoir intégrer facilement tout un ensemble de rapports standards sur les tests unitaires, la couverture du code, la javadoc, le code source, la qualité et les éventuels bugs. C’est facile à intégrer et le résultat est très sympa.
Notre framework a une application d’exemple, un genre de « HelloWorld » mais un peu plus compliqué. Une fois l’intégration continue mise en place ave cruisecontro, s’est posé le problème de mettre en ligne une version de démo. Celle-ci permet d’effectuer quelques tests de non-regression et de montrer à nos clients les possibilités du framework. Bref pour maven2 la meilleure solution semble être d’utiliser Cargo. Ce plugin de Vincent Massol permet d’installer, deployer un serveur JBoss directement à partir de Maven2. Pour l’instant nous en sommes là et en attendant une petite copie effectuée avec une tache Ant nous permet de continuer à travailler. A suivre donc.
0 no like