Nous remplaçons lentement les fichiers de commandes par lots (windows .bat) qui bousculaient simplement les classes compilées dans l'IDE des développeurs, avec des versions Ant plus complètes (c.-à-d. Obtenir de CVS, nettoyer la compilation, jar, archive, email, etc.)
J'ai passé beaucoup de temps à apprendre (et à déboguer les problèmes) avec Ant, donc je suis plus à l'aise de l'utiliser pour ces tâches. Mais je me demande si Ant est toujours aussi répandu qu'il l'était lorsque j'ai commencé à apprendre, ou si "le monde est passé" à quelque chose de plus récent (et peut-être plus lisse). (J'ai commencé à voir plus de choses de construction Maven distribuées, que je n'ai jamais utilisées, par exemple.)
L'importance pratique de cette question est de savoir si j'encourage les nouveaux développeurs à apprendre Ant , ou s'ils devraient apprendre autre chose pour les builds?
Je ne suis jamais trop au courant des tendances, donc ce serait formidable d'entendre d'autres développeurs Java ce qu'ils pensent être le meilleur outil de construction et ce qu'ils pensent que les nouveaux développeurs devraient apprendre.
Réponses:
Je suis d'accord avec les autres ici que Maven semble avoir repris les projets les plus importants que j'ai examinés.
Bien qu'Ant soit très flexible, le fichier de génération n'est pas standardisé, donc lorsque vous passez à un nouveau projet ou une nouvelle entreprise, les cibles sont nommées différemment, le fichier est structuré différemment, les dépendances inter-cibles peuvent ou non être établies, etc.
Avec Maven, vous bénéficiez également de l'avantage de ne pas avoir à transporter de dépendances binaires (je parle de jars) dans votre système SCM. Beaucoup d'autres excellents outils Java savent lire un fichier Maven POM (l'avantage de la normalisation), donc des outils comme les IDE peuvent configurer un projet Maven très rapidement, et des outils de construction comme Jenkins peuvent facilement exécuter des builds Maven.
la source
J'ai travaillé avec Ant et avec Maven. D'après mon expérience, Maven a un avantage très fort sur Ant.
Sur une note moins positive à propos de maven, mon expérience avec sa documentation n'était pas si grande jusqu'à présent. Je pense avoir vu un produit avec une documentation pire que celle de maven mais je ne me souviens pas lequel (une ancienne bibliothèque CSV iirc).
la source
Nous utilisons Maven depuis plusieurs années. Il prend en charge les scripts Ant (tout comme Ant prend en charge BeanShell), donc vos connaissances Ant peuvent toujours être utiles. Maven est beaucoup plus puissant, mais il a des exigences d'infrastructure supplémentaires (vous voudrez un serveur Artifactory ou Nexus pour héberger vos builds si vous partagez des composants entre plusieurs projets). C'est également très différent de Ant, vous ne pouvez donc pas tirer parti de beaucoup de vos connaissances existantes.
la source
Je pense que la fourmi seule est morte dans l'eau; avoir à spécifier manuellement toutes vos dépendances de chemin de classe (en fonction de votre configuration) est beaucoup trop manuel et très sujet aux erreurs. Si Ant est utilisé aux côtés d'un outil de gestion des dépendances, comme Ivy, il conserve sa puissance et supprime la nécessité de gérer manuellement vos dépendances.
L'autre problème avec Ant par rapport à Maven est le manque de standardisation, qui a été mentionné dans d'autres réponses. Lors du passage d'un projet à un projet ou d'un travail à un autre, l'une des choses les plus ennuyeuses que je trouve est d'apprendre le nouveau standard pour les différents fichiers Ant. L'objectif de Maven de convention sur la configuration signifie que deux projets différents auront une structure très similaire, ce qui rend la transition entre eux beaucoup plus facile qu'avec Ant.
Quant à savoir si Ant est toujours dominant ou non, cela dépendra de l'environnement de développement dans lequel vous travaillez. Si le projet est dans une petite entreprise ou une start-up, j'imagine que Maven serait le choix naturel et le temps peut être pris d'investir dans l'infrastructure, comme une Artifactory. Cependant, les grandes entreprises auront investi de nombreuses années et beaucoup d'argent dans leur infrastructure Ant (configurations, fichiers de construction globale, etc.), ce qui signifiera qu'elles seront moins enclines à s'éloigner d'une technologie dans laquelle elles ont investi tant d'argent.
la source
Maven est en augmentation depuis de nombreuses années, et maintenant je dois l'apprendre. Les choses changeront toujours, et savoir que Ant perd sa position n'est pas une mauvaise chose.
Maven n'est peut-être que le dernier venu pour peu de temps, mais si cela nous facilite la tâche, il vaut la peine d'investir du temps pour apprendre.
la source