Je lisais this blog par Kent R.Spillner concernant Java build tools. Bien que J'ai légèrement utilisé Ant et Maven, je ne me suis engagé sérieusement dans aucun des deux, ce que j'ai l'intention de faire. Est-ce que le billet de blog que j'ai lié est exagéré? 20K LOC).
Ça dépend vraiment. Maven et Ant sont juste des approches différentes: impératives et déclaratives (voir Systèmes de construction impératifs vs déclaratifs )
Maven est préférable pour gérer les dépendances (mais Ant est également d'accord avec elles, si vous utilisez Ant + Ivy) et créer des artefacts. Le principal avantage de maven - son cycle de vie. Vous pouvez simplement ajouter des actions spécifiques sur la phase correcte, ce qui semble assez logique: lancez simplement vos tests d'intégration sur la phase de test d'intégration par exemple. En outre, il existe de nombreux plugins existants, qui peuvent presque tout. L'archétype Maven est une fonctionnalité puissante qui vous permet de créer rapidement un projet.
Ant est préférable pour contrôler le processus de construction. Avant votre tout premier build, vous devez écrire votre build.xml. Si votre processus de construction est très spécifique, vous devez créer des scripts compliqués. Pour les projets à long terme, le support des ant-scripts peut devenir très pénible: les scripts deviennent trop compliqués, les gens qui les ont écrits peuvent quitter le projet, etc.
Les deux utilisent du XML, qui pourrait devenir trop important dans les grands projets à long terme.
Quoi qu'il en soit, vous devez lire une documentation spécifique sur les deux. Il existe également un plugin ant-maven, qui permet de lancer des ant-scripts avec maven.
P.S. Vous pouvez jeter un oeil sur Gradle , qui pour moi pourrait fournir plus de liberté que Maven, mais est plus facile à utiliser que Ant.