• # Ant > Maven > Gradle

    Posté par . En réponse au journal Un petit tour des systèmes de build. Évalué à 4.

    Historiquement c'est dans cet ordre qu'il faut les présenter : Ant > Maven > Gradle

    Ant, comme tu le dit, est une sorte de Makefiles en XML et très orienté pour les build Java, mais pas que, normalement. De base il n'a pas de gestion de dépendance, c'est le plug-in Ivy qui le fait pour lui. Un de ses gros défaut (outre la syntaxe XML) est que ses tâches/cibles sont très verbeuses a écrire et difficilement mutualisable/réutilisable. Il faut sans cesse réinventer la roue, mais permet de personnaliser finement ses script.

    Maven est l'outil le plus populaire/répandu actuellement, surtout grâce a son écosystème très étendu. Tu as un plug-in pour quasiment tout ce que tu souhaite. Là encore les fichiers (pom.xml) sont en ... XML. Il essaye de palier au défaut de Ant en ne permettant pas de scripter dans ses fichiers de description. Il faut obligatoirement passer par un plug-in, donc très grosse réutilisabilité du code ... normalement. Sa gestion des dépendance est assez efficace et propose quelques outils pour résoudre les conflits

    Gradle est le plus intéressant des 3 a mon avis. Déjà il a abandonner le XML au profit du JSON. Il ne profite malheureusement pas d'un écosystème aussi étendue que Maven, mais permet l'écriture de scipt en Groovy dans les fichiers projets en plus de l'utilisation de tâche/plug-in. Groovy n'est peut être pas le meilleur choix, mais vue que la population qui l'utilise est Javaïste en majorité le choix de ce langage de scripting est logique. Un peu le meilleur des 2 outils précédents a mon avis. Bien sûr gère les dépendance de manière assez efficace. Enfin point de vu perf il a un mode résident et compilation incrémentale des plus intéressant (https://guides.gradle.org/performance/).