95 votes

Différences entre Ant et Maven

Quelqu'un pourrait-il me dire les différences entre Ant et Maven? Je n'ai jamais utilisé ni l'un ni l'autre. Je comprends qu'ils sont utilisés pour automatiser la construction de projets Java, mais je ne sais pas par où commencer.

6voto

Ascalonian Points 3496

Juste pour lister quelques différences supplémentaires :

  • Ant n'a pas de conventions formelles. Vous devez dire à Ant exactement où trouver la source, où mettre les sorties, etc.
  • Ant est procédural. Vous devez dire à Ant exactement quoi faire; dire de compiler, copier, puis compresser, etc.
  • Ant n'a pas de cycle de vie.
  • Maven utilise des conventions. Il sait automatiquement où se trouve votre code source, tant que vous suivez ces conventions. Vous n'avez pas besoin de dire à Maven où il se trouve.
  • Maven est déclaratif ; Vous avez juste à créer un fichier pom.xml et mettre votre source dans le répertoire par défaut. Maven se chargera du reste.
  • Maven a un cycle de vie. Vous appelez simplement mvn install et une série d'étapes séquentielles sont exécutées.
  • Maven possède une intelligence sur les tâches projet courantes. Pour exécuter les tests, il suffit d'exécuter simplement mvn test, tant que les fichiers sont dans l'emplacement par défaut. Avec Ant, vous devriez d'abord savoir où se trouve le fichier JUnit, puis créer un classpath qui inclut le fichier JUnit, puis dire à Ant où il devrait chercher le code source de test, écrire un objectif qui compile le code source de test et enfin exécuter les tests unitaires avec JUnit.

Mise à jour :

Cela provient de Maven: Le guide définitif. Désolé, j'ai totalement oublié de le citer.

5voto

Je peux prendre une personne qui n'a jamais vu Ant - ses build.xml sont assez bien écrits - et ils peuvent comprendre ce qui se passe. Je peux prendre cette même personne et leur montrer un POM Maven et ils n'auront aucune idée de ce qui se passe.

Dans une organisation d'ingénierie qui est énorme, les gens écrivent que les fichiers Ant deviennent grands et ingérables. J'ai écrit ces types de scripts Ant à la fois propres. Il s'agit vraiment de comprendre à l'avance ce que vous devez faire pour l'avenir et de concevoir un ensemble de modèles qui peuvent répondre au changement et s'adapter sur une période de plus de 3 ans.

À moins d'avoir un projet simple, apprendre les conventions Maven et la méthode Maven pour accomplir les tâches demandées est assez difficile.

À la fin de la journée, vous ne pouvez pas considérer le démarrage du projet avec Ant ou Maven comme un facteur : il s'agit vraiment du coût total de possession. Ce qui est nécessaire pour l'organisation pour maintenir et étendre son système de compilation sur quelques années est l'un des principaux facteurs qui doivent être pris en compte.

Les aspects les plus importants d'un système de compilation sont la gestion des dépendances et la flexibilité pour exprimer la recette de construction. Il doit être quelque peu intuitif lorsqu'il est bien fait.

2voto

karlipoppins Points 10140

Je dirais que cela dépend de la taille de votre projet... Personnellement, j'utiliserais Maven pour les projets simples qui nécessitent une compilation, une mise en paquet et un déploiement simples. Dès que vous avez besoin de faire des choses plus compliquées (beaucoup de dépendances, création de fichiers de mapping...), je passerais à Apache Ant...

1voto

markt Points 3716

Maven héberge également un grand référentiel de projets open source couramment utilisés. Pendant la construction, Maven peut télécharger ces dépendances pour vous (ainsi que les dépendances de vos dépendances :)) pour rendre cette partie de la construction d'un projet un peu plus gérable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X