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.
Réponses
Trop de publicités?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.
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.
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...
- Réponses précédentes
- Plus de réponses