22 juin 2007

Maven or not maven ?

Les développeurs de Spring n'aiment définitivement pas maven. Il faut dire que leur code doit être compilé à la fois pour Java 1.4, Java5 et Java6, avec de multiples rafinements. Ce n'est tout simplement pas possible actuellement avec maven !

Leur argument principal : sur un petit projet, maven peut proposer des conventions bien pratiques, mais dés que les choses se compliquent, le volume du fichier XML explose.

Par ailleurs, il préfèrent largement ivy pour la gestion des dépendances, car ses méta-données sont d'une bien meilleure qualité, et évitent bien des déboires.

Ils préfèrent InteliJ IDEA à Eclipse, car sa gestion des fichiers source de tout type est bien mieux intégrée : le renommage d'une classe met à jour tous les fichiers XML ou properties. On peut faire du refactoring dans les JSP, pages HTML, CSS... quelque chose qui n'a aucun équivalent sous Eclipse.

Enfin, ils préfèrent JIRA et BAMBOO comme infrastructure qualité. Jira est quasi-universellement utilisé sur les projets opensource (license offerte!) et particulièrement efficace. Bamboo semble beaucoup plus souple et sympa que CruiseControl ou Continuum...

Ca vaudrait peut être le coup de revoir ma "stratégie" outils, car je me casse souvent les dents sur la conf de maven, sans parler de sa non-intégration sous Eclipse !

Une citation qui résume asse bien les choses (traduction approximative) : "maven, c'est comme acheter un écran plasma HD, et une fois à la maison, on à une image en noir et blanc". Un peu dur, mais pas totalement faux...

2 commentaires:

marco a dit…

désolé de polluer ton blog de mes commentaires;)
mais je doit dire que tu aborde de très bon sujets...
Même sentiment sur maven...
Sur un projet de très gros genre 1/2 millions de lignes de codes, la structures de répertoires tu n'y as plus forcement la main.
des phases de pré compilation tordues, des filtrage de répertoires vérolés par l'historique du projet

je rajouterai que la doc de maven est pour moi hermétique(je doit être trop ...)
je suis donc personnellement toujours plus un fan de ivy+ant
cepandant maven à bcps de partisan
alors pour ton cv ;)
avec un peu de pratique ANT+ivy si la structure des répertoires est simple, la compilation est aussi très simple...

nicolas deloof a dit…

Pas de problème de "polution", c'est fait pour ça !

Je suis un partisan de maven par rapport à ce qu'il est sensé faire, à savoir normaliser la structure des projets et apporter les comportements attendus par ajout de plugins... sauf que dans la pratique il n'y a jamais exactement le plugin qu'il faut ou l'option désirée et le cauchemard commence, sans parler de la verbosité délirante du fichier POM.xml dés qu'on fait des choses un peu compliquées.

Un autre problème, récement évoqué sur la liste maven : la version des plugins n'étant pas précisée dans le POM, elle dépend de ce qui est installé sur le poste, donc un projet ancien peut ne pas être reproductible si on a pas pris le soin de préciser en [pluginManagement] toutes les versions de plugins utilisés. Or qui connait tous les plugins utilisés ?