Developpez.com - Rubrique Java

Le Club des Développeurs et IT Pro

Sondage : Quel outil de build utilisez-vous pour vos projets Java ?

Le 2009-09-07 16:26:14, par romaintaz, Rédacteur
Bonjour,

Afin de compléter un article en cours d'écriture, j'aurais voulu savoir quels sont les outils de builds que vous utilisez pour construire vos projets Java.

N'hésitez absolument pas (c'est même recommandé) à lister les avantages et inconvénients de l'outil que vous utilisez...
  Discussion forum
18 commentaires
  • Baptiste Wicht
    Expert éminent sénior
    Personnellement j'utilise Ant depuis longtemps et depuis peu, je commence à le remplacer par Maven 2 dans mes projets.

    Maven 2 permet de faire plus de chose de base qu'Ant sans avoir besoin de configurer de long script. De plus, les possibilités sont plus nombreuses (couverture de code, release, génération de rapports, site, ...).
  • michel.di
    Membre éprouvé
    Pour ma part j'utilise ant

    +lisibilité (étant habitué à manipuler de l'XML)
    + simplicité pour des tâches usuelles comme la compilation, l'exécution du projet ou encore générer la javadoc
    +Eclipse peut le générer (parfois il ne vaut mieux pas! )

    -construction parfois complexe pour des tâches importantes
    -propriétés pas toujours claires
  • romaintaz
    Rédacteur
    De mon côté, j'utilise essentiellement Maven2, mais je commence à jeter un oeil sur Gradle (à mon avis, c'est plus pour le fun que pour vraiment l'utiliser, mais on ne sait jamais).

    Concernant Maven 2 :

    Les bons points :

    • Si on respecte les conventions de Maven 2, l'écriture d'un pom.xml est très simple et peu verbeux.
    • La gestion des dépendances, qui, sans être parfaite, a beaucoup simplifié les choses.
    • L'héritage et les projets multi-modules.
    • Les plugins de rapports.Le développement de nouveaux plugins est relativement simple.
    • Pour des projets simples, avec un pom.xml, on peut faire plein de choses facilement (compilation, tests, création de sites, rapports, etc.).
    • Bien supporté dans la plupart des outils d'Intégration Continue.
    • Le principe de décrire son projet plutôt que de décrire les tâches que l'on souhaite réaliser (mais c'est un aussi un point négatif, dès que l'on veut faire quelque chose qui sorte de l'ordinaire).

    Les mauvais points :

    • Dès que l'on veut sortir un peu du système Maven2, que l'on veut faire des choses un peu en dehors du cadre de l'outil, ça devient vite complexe.
    • Trop verbeux sur les dépendances. Pourquoi n'avoir pas dès le début permis une syntaxe à la Ivy (<dependency groupId="xxx" artifactId="xxx" version="xxx"/>) ?
    • On utilise trop de plugins, parfois pour des tâches simples. Par exemple, si on a 2 répertoires de sources Java, le pom.xml est
    • Documentation mal fichue sur le site (mais on a le droit à des livres gratuits en anglais et en français, ça compense).
    • Les métadonnées XML sont très obscures je trouve (celles qui se trouvent dans le repository).
    • XML parfois redondant, même en utilisant l'héritage.
    • Mauvais support sur les IDE, en particulier sur les projets multi-modules, bien que ça s'améliore...
    • Même si c'est de plus en plus rare avec un nombre croissant de plugins, c'est dommage d'avoir recours à Ant dans Maven2 pour faire certaines tâches qui sortent un peu de l'ordinaire (ou alors il faut développer son propre plugin).
    • Développement et support des plugins "officiels" inégaux.


    Bon, la liste n'est sans doute pas tout à fait complète, mais ça devrait refléter mon avis.

    Pour conclure, je dirais que si je dois aller sur un nouveau projet, je choisirais clairement Maven2, malgré ses défauts.
    Etant donné ma connaissance de l'outil, j'arrive généralement à m'en sortir sans trop de dégâts, dès qu'il y a des choses un peu exotiques à réaliser...
  • lunatix
    Rédacteur
    pour ma part c'est ant+ivy, mais suis souvent obligé de subir maven (je pourrais parler des heures de ma haine pour maven )

    j'espere beaucoup de gradle !
  • Baptiste Wicht
    Expert éminent sénior
    Envoyé par romaintaz
    Mauvais support sur les IDE, en particulier sur les projets multi-modules, bien que ça s'améliore...
    Juste pour ce point, je ne suis pas vraiment d'accord. Je ne connais pas le support Maven 2 de tous les IDE, mais pour ce qui est de IntelliJ Idea, il est vraiment excellent et réalise tout ce que ce que je veux, également pour les projets multi-modules.
  • MaTriX91
    Membre à l'essai
    Je package occasionnellement avec eclipse.

    Pour mes anciens projets, c'était tout en Ant.

    Maitenant, je ne fais que du Maven.
  • dingoth
    Membre expérimenté
    Ant tout seul.

    Avec un système Write-once, build anywhere on tient tous nos développements en modifiant 2 lignes lors d'un nouveau projet. Aucun souci.
  • blueangel82
    Membre à l'essai
    Pour ma part, j'utilise Maven 2 depuis près de 6 mois, et le temps qu'il m'a fait gagner est considérable.

    Les points faibles que je trouves sont certes anectotiques mais bon ...
    - Customisation brouillon du site web généré
    - Temps de build variant
    - Tout est plugin, mais du coup le nombre de plugin est conséquent sur un projet
  • sylez
    Futur Membre du Club
    Buildr

    Simple/puissant/pratique/explicite/succinct

    Seul bémol : Ce n'est pas le "standard-d-entreprise-de-facto" (c'est mieu )

    D'expérience, un build (il est vrai pourri) est passé de 20 minutes en maven 1 à 3 minutes en buildr.
  • rberthou
    Membre éclairé
    Salut,

    Je suis toujours a Maven 1 (intégré dans eclipse) mais j'espère passer prochainement a la 2 mais cela ne me semble pas si "facile" .