2009-03-29 6 views
5

J'ai essayé de comprendre à quoi sert Ant, mais je ne comprends toujours pas. Est-ce que quelqu'un peut me donner un cas d'utilisation pour lequel Ant est utilisé, quelque chose que je peux essayer de voir pourquoi Ant est utile et pour quel genre de choses je peux l'utiliser?Comment utiliser Ant?

Je fais du développement Java dans Eclipse et je commence à utiliser les servlets et Google Web Toolkit.

+1

efficacement un double de http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

(Dans que les réponses à cette question à répondre à cette question directement.) –

Répondre

17

Ant est un outil de construction. Supposons par exemple que vous ayez plusieurs projets dans votre espace de travail Eclipse, qui sont tous des éléments d'une application plus grande. Pour tout construire dans un fichier jar avec des dépendances incluses, vous pouvez sélectionner tous les projets et les exporter en tant que fichier jar, mais c'est un peu lourd.

Ant est une solution extensible. Vous définissez le processus de construction en XML, et ant compile vos fichiers java en fonction de cette recette.

La fourmi peut faire plus que construire, aussi. J'ai travaillé dans une entreprise où le mécanisme de déploiement était les paquets Debian dans notre propre référentiel. Nous avions des scripts Ant qui construisaient les fichiers jar, les arrangeaient et quelques fichiers de métadonnées dans un paquet Debian, les plaçaient dans le référentiel, et génériquaient à nouveau le manifeste du référentiel.

Comme pour tout ce qui concerne Java, il y a beaucoup de configuration dont vous avez besoin pour vous familiariser avec Ant, mais certains tutoriels de base devraient vous donner une idée de ce dans quoi vous vous embarquez.

4

Ant est utilisé, comme tout outil de construction, pour automatiser les tâches répétitives de construction de votre code. Plutôt que d'exécuter javac à la main, vous mettez une commande dans un script Ant, puis lorsque vous exécutez ant, javac est exécuté pour vous.

Mon processus typique de construction avec fourmi va quelque chose comme ceci:

  • course javac sur la source
  • course javac sur les tets
  • exécuter l'instrumentation de cobertura la source (ce qui est pour la couverture de code)
  • jar les classes de la source
  • pot
  • les cours instrumentés cobertura
  • jar l'u cours d'essai nit
  • course checkstyle, PMD, FindBugs sur la source pour trouver des avertissements
  • exécuter les tests unitaires via cobertura pour obtenir une couverture de code d'entre eux

C'est donc 8 étapes que je l'ai fait sur chaque construire que je peux faire simplement en exécutant "fourmi".

2

Ant est un fichier make basé sur XML.

Vous ne verrez pas beaucoup d'avantages à utiliser Ant si vous êtes un développeur unique qui construit et empaquette déjà du code avec succès en utilisant un EDI comme Eclipse. Le plus grand avantage vient lorsque vous avez une équipe qui collabore sur le code. Ensuite, vous aurez un gros coup de pouce si vous utilisez Cruise Control ou une autre installation d'intégration continue. CC nécessite un Ant build.xml.

0

C'est de la documentation ANT et explique assez bien.

Pourquoi un autre outil de construction quand il y a déjà faire, gnumake, nmake, confiture et autres ? Parce que tous ces outils ont limitations que l'auteur original de Ant ne pouvait pas vivre avec le développement de logiciels sur plusieurs plates-formes. Les outils de type make sont intrinsèquement basés sur un shell: ils évaluent un ensemble de dépendances , puis exécutent les commandes un peu comme ce que vous lanceriez sur un shell . Cela signifie que vous pouvez facilement étendre ces outils à l'aide ou l'écriture tout programme pour le système d'exploitation que vous travaillez sur ; Cependant, cela signifie également que vous vous limiter au système d'exploitation ou au moins le type de système d'exploitation, tels que Unix, que vous travaillez.

Makefiles sont intrinsèquement mauvais aussi bien. Toute personne qui a travaillé sur eux pour toute temps a rencontré l'onglet redouté problème. "Ma commande ne s'exécute-t-elle pas parce que j'ai un espace devant mon onglet ? !!" a déclaré l'auteur original de Ant manière trop de fois. Des outils tels que Jam a pris soin de ce dans une grande mesure, mais encore un autre format à utiliser et à mémoriser.

Ant est différent. Au lieu d'un modèle où il est étendu avec des commandes shell , Ant est étendu en utilisant les classes Java . Au lieu de l'écriture en shell commandes, les fichiers de configuration sont XML, appelant un arbre cible où différentes tâches sont exécutées. Chaque tâche est exécutée par un objet qui implémente une interface Tâche particulière.

Certes, cela enlève une partie de la puissance expressive qui est inhérent à pouvoir construire une commande shell tels que find . -name foo -exec rm {}, mais il vous donne la possibilité d'être multiplateforme - travailler partout et partout . Et hé, si vous avez vraiment besoin d'exécuter une commande shell , Ant a une tâche qui permet d'exécuter différentes commandes en fonction du système d'exploitation sur.