Tutoriel Apache ANT : Qu'est-ce que l'outil Ant Build ? Exemple
โก Rรฉsumรฉ intelligent
Apache ANT est un Java Outil de construction basรฉ sur XML qui automatise la compilation, les tests, l'empaquetage et le dรฉploiement via un fichier de construction XML. Cet article dรฉfinit l'outil. tracson histoire, couvre Windows L'installation explique la structure du projet et la compare ร Maven et Gradle.

Qu'est-ce qu'un outil de construction ?
Un outil de construction est un outil de programmation utilisรฉ pour crรฉer une nouvelle version d'un programme. Il automatise la crรฉation d'une application exรฉcutable ร partir de n'importe quel code source.
Sans outil de compilation, un dรฉveloppeur devrait compiler manuellement chaque fichier source, copier les ressources, exรฉcuter les tests et empaqueter le rรฉsultat ร chaque modification. Un outil de compilation enregistre ces รฉtapes une seule fois et les rรฉpรจte ร l'identique sur chaque machine.
Quโest-ce quโApache Ant ?
Fourmi Apache est une Java-outil de ligne de commande basรฉ sur la construction Java applications avec la portabilitรฉ totale de pure Java Ant est un outil qui permet aux dรฉveloppeurs d'adopter les principes agiles et le dรฉveloppement pilotรฉ par les tests afin d'automatiser les tรขches de dรฉveloppement rรฉpรฉtitives, comme la gรฉnรฉration de documentation. Ant est l'acronyme de ยซ Another Neat Tool ยป (Un autre outil pratique).
Comme le montre le schรฉma, Ant lit un fichier de construction, dรฉtermine l'ordre des cibles qu'il contient, puis exรฉcute les tรขches individuelles qui compilent, copient, testent et empaquetent l'application.
ร quoi sert lโoutil Apache Ant Build ?
Voici les principaux avantages de l'utilisation de l'outil de construction :
- Un outil de construction permet d'automatiser des tรขches rรฉpรฉtitives spรฉcifiques telles que la compilation du code source, l'exรฉcution des tests logiciels et la crรฉation de fichiers pour le dรฉploiement du logiciel.
- Les outils de build fonctionnent principalement sans interface utilisateur graphique.
- Il vous aide ร convertir le code source en code exรฉcutable.
- Il offre la possibilitรฉ de recompiler un fichier uniquement si nรฉcessaire.
- Il vous permet de compiler un grand nombre de fichiers en un temps relativement court.
- Deux outils de construction trรจs populaires utilisรฉs par Java Les dรฉveloppeurs sont Apache Maven et Fourmi.
Histoire de la fourmi Apache
Nous allons maintenant dรฉcouvrir l'histoire de l'outil de construction Apache Ant.
Voici les repรจres historiques importants de lโoutil Apache Ant :
- James Duncan Davidson a crรฉรฉ Ant en juillet 2000.
- Il a รฉtรฉ initialement utilisรฉ pour construire Tomcat et รฉtait fourni comme produit intรฉgrรฉ au kit de distribution Tomcat.
- En mai 2014, la version 1.9.4 d'Apache Ant a รฉtรฉ publiรฉe avec de nombreuses fonctionnalitรฉs avancรฉes.
- La branche 1.10.x a dรฉbutรฉ en 2017 et reste la branche activement maintenue.
- La version 1.10.17 a รฉtรฉ publiรฉe le 10 avril 2026 et nรฉcessite une configuration minimale. Java 8 minutes d'exรฉcution.
Caractรฉristiques d'Apache Ant
Voici les caractรฉristiques essentielles d'Apache Ant :
- C'est un projet open source.
- Il vous permet d'exรฉcuter des builds sur les deux Windows et les systรจmes UNIX ou Linux.
- Vous n'avez besoin que d'un JVM, car il s'exรฉcute partout oรน une JVM est disponible.
- Il offre un large รฉventail de tรขches prรฉdรฉfinies.
- Il vous permet de copier des fichiers d'un emplacement ร un autre.
- Elle offre une interface permettant de dรฉvelopper des tรขches personnalisรฉes.
- Il vous permet de lancer des compilations depuis la ligne de commande, ce qui s'intรจgre facilement avec IDE gratuits et commerciaux.
- Il vous permet de dรฉployer les fichiers binaires sur un serveur de test.
- Elle offre une architecture extensible.
- Il offre une compatibilitรฉ ascendante entre les diffรฉrentes versions.
Comment installer et configurer Apache Ant sur Windows
Nous allons maintenant apprendre le processus d'installation d'Apache Ant sur Windows.
Nous supposons que vous avez dรฉjร tรฉlรฉchargรฉ et installรฉ le Java Kit de dรฉveloppement (JDK) sur votre ordinateur. Assurez-vous que la variable d'environnement JAVA_HOME pointe vers le dossier d'installation de votre JDK. Suivez les รฉtapes ci-dessous pour installer Ant :
รtape 1) Tรฉlรฉchargez les binaires.
Tรฉlรฉchargez les binaires ร partir de https://ant.apache.org/bindownload.cgi
รtape 2) Dรฉcompressez les fichiers.
Dรฉcompressez ce fichier zip dans un emplacement pratique tel que c:\dossier, en utilisant WinZip, WinRAR, 7-Zip, ou un outil similaire.
รtape 3) Crรฉez une variable d'environnement.
Crรฉez une variable d'environnement nommรฉe ยซ ANT_HOME ยป et attribuez-lui la valeur correspondant ร l'emplacement du dossier Ant.
- Faites un clic droit sur l'icรดne Ce PC.
- Cliquez sur Propriรฉtรฉs.
รtape 4) Accรฉdez aux paramรจtres systรจme.
Cliquez sur ยซ Paramรจtres systรจme avancรฉs ยป.
รtape 5) Sur les propriรฉtรฉs du systรจme,
Cliquez sur l'onglet ยซ Avancรฉ ยป.
รtape 6) Trouvez les variables d'environnement.
Cliquez sur le bouton ยซ Variables dโenvironnementโฆ ยป.
รtape 7) Crรฉez une nouvelle variable.
Cliquez sur ยซ Nouveau ยป pour crรฉer une nouvelle variable utilisateur.
รtape 8) Saisissez les dรฉtails de la variable.
Saisissez les dรฉtails de la nouvelle variable utilisateur.
- Saisissez le nom de la variable comme suit : ANT_HOME.
- Saisissez la valeur de la variable comme le dossier dans lequel Ant a รฉtรฉ dรฉcompressรฉ, par exemple C:\apache-ant-1.10.17.
- Cliquez sur le bouton ยซOKยป.
รtape 9) Variable crรฉรฉe.
Cliquez sur le bouton ยซOKยป.
รtape 10) Fermez l'รฉcran.
Cliquez sur ยซ OK ยป pour fermer l'รฉcran.
Astuce : La variable ANT_HOME doit pointer vers le dossier d'installation lui-mรชme, et non vers le dossier bin qu'il contient. Ensuite, ajoutez %ANT_HOME%\bin ร la variable Path, afin que la commande ant soit reconnue depuis n'importe quel rรฉpertoire.
Vous pouvez vรฉrifier qu'une installation d'Ant a rรฉussi en tapantping la commande ยซ ant -version ยป dans lโinvite de commandes.
Vous verrez l'รฉcran suivant:
Exemple d'Apache ANT
Le fichier de configuration ci-dessous dรฉfinit une cible unique nommรฉe ยซ hello ยป qui affiche un message. L'รฉlรฉment ยซ project ยป dรฉclare un nom et une cible par dรฉfaut, afin qu'Ant sache quelle commande exรฉcuter lorsqu'aucune cible n'est spรฉcifiรฉe sur la ligne de commande.
<?xml version="1.0"?> <project name="HelloWorld" default="hello" basedir="."> <target name="hello"> <echo>Hello, World</echo> </target> </project>
Enregistrez ce fichier sous le nom ยซ build.xml ยป, puis suivez ces deux รฉtapes :
- Ouvrez l'invite de commandes et accรฉdez au rรฉpertoire contenant le fichier build.xml.
- Courir
ant hello, ou simplementant, car ยซ hello ยป est dรฉclarรฉ comme cible par dรฉfaut. Pour utiliser un autre nom de fichier, exรฉcutezant -f mybuild.xml hello.
Sortie :
Buildfile: C:\projects\demo\build.xml
hello:
[echo] Hello, World
BUILD SUCCESSFUL
Total time: 0 seconds
Structure du projet ANT
Structure du projet ANT
Comme le montre le schรฉma de structure, chaque construction comprendra trois nลuds :
- Projet
- Target
- Tรขche
Projet
Tout ce qui se trouve dans le fichier de construction dans Apache ANT se trouve dans un projet.
Attributs:
- Nom : Le nom du projet.
- Basรฉ : Il s'agit du rรฉpertoire ร partir duquel tous les chemins seront calculรฉs. Ce comportement peut รชtre modifiรฉ ร l'aide de la propriรฉtรฉ ยซ basedir ยป.
- Valeur par dรฉfaut: Permet de dรฉfinir la cible par dรฉfaut pour ce projet. Si aucune cible n'est spรฉcifiรฉe, Ant exรฉcutera la cible par dรฉfaut.
Target
Une cible est un ensemble de tรขches dรฉfinies pour atteindre un รฉtat spรฉcifique du processus de construction.
Attributs:
- Nom : Nom de la cible (obligatoire).
- Description : Descriptionisation de la cible.
- Dรฉpend: De quelle cible dรฉpend cette cible actuelle ?
- Si: Exรฉcute la cible uniquement si une valeur est dรฉfinie pour une propriรฉtรฉ cible.
- Sauf si: N'exรฉcute la cible que si la valeur de la propriรฉtรฉ n'est pas dรฉfinie.
Tรขches
Une tรขche est un fragment de code exรฉcutable. Les tรขches possรจdent plusieurs arguments ou attributs.
La mรฉthode gรฉnรฉrale pour รฉcrire une tรขche est la suivante :
<name attribute1="value" attribute2="value2"โฆ/>
Vous pouvez utiliser une tรขche intรฉgrรฉe ou crรฉer votre propre tรขche. Le tableau ci-dessous rรฉpertorie les tรขches qui apparaissent dans presque tous les cas. Java fichier de construction.
| Tรขche | Interet | Attributs typiques |
|---|---|---|
| echo | Afficher un message sur la console | message |
| mkdir | Crรฉer un annuaire | dir |
| delete | Supprimer des fichiers ou des rรฉpertoires | rรฉpertoire, inclure les rรฉpertoires vides |
| javac | Compiler Java fichiers source | srcdir, destdir, includeantruntime |
| feu | Regrouper les classes dans une archive JAR | fichier de destination, rรฉpertoire de base |
| copier | Copier des fichiers entre diffรฉrents emplacements | fichier, rรฉpertoire |
| Junit | Exรฉcuter des tests unitaires | รฉchec de Halton, rรฉsumรฉ des impressions |
Exemple complet de fichier build.xml avec plusieurs Targets
Un fichier de configuration rรฉaliste enchaรฎne plusieurs cibles. L'attribut `depends` garantit l'ordre d'exรฉcution : Ant nettoie le rรฉpertoire de sortie, compile le code source, puis gรฉnรจre le fichier JAR.
<?xml version="1.0"?> <project name="DemoApp" default="jar" basedir="."> <!-- reusable values --> <property name="src.dir" value="src"/> <property name="build.dir" value="build"/> <target name="clean" description="Remove previous output"> <delete dir="${build.dir}"/> </target> <target name="compile" depends="clean" description="Compile sources"> <mkdir dir="${build.dir}/classes"/> <javac srcdir="${src.dir}" destdir="${build.dir}/classes" includeantruntime="false"/> </target> <target name="jar" depends="compile" description="Package the jar"> <mkdir dir="${build.dir}/jar"/> <jar destfile="${build.dir}/jar/DemoApp.jar" basedir="${build.dir}/classes"> <manifest> <attribute name="Main-Class" value="com.guru99.Main"/> </manifest> </jar> </target> </project>
Sortie :
Buildfile: C:\projects\DemoApp\build.xml
clean:
[delete] Deleting directory C:\projects\DemoApp\build
compile:
[mkdir] Created dir: C:\projects\DemoApp\build\classes
[javac] Compiling 3 source files to C:\projects\DemoApp\build\classes
jar:
[mkdir] Created dir: C:\projects\DemoApp\build\jar
[jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar
BUILD SUCCESSFUL
Total time: 1 second
Apache Ant vs Maven vs Gradle
Trois outils de construction dominent le Java รฉcosystรจme, et chacun adopte une position diffรฉrente quant au degrรฉ de structure ร imposer.
| Paramรจtres | Fourmi Apache | Apache Maven | Gradle |
|---|---|---|---|
| Format du script de construction | XML | XML | Groovy ou Kotlin DSL |
| Approche | Procรฉdural, vous dรฉfinissez chaque รฉtape | Dรฉclaratif, la convention prime sur la configuration | Dรฉclaratif avec extensions scriptรฉes |
| Gestion des dรฉpendances | Non intรฉgrรฉ, ajoutรฉ via Apache Ivy | Intรฉgrรฉ avec un dรฉpรดt central | Intรฉgrรฉ, compatible Maven |
| Structure du projet | Complรจtement libre | disposition standard fixe | Basรฉ sur une convention mais modifiable |
| Constructions incrรฉmentielles | รdition | รdition | Oui, avec un cache de compilation |
| Courbe d'apprentissage | Faible pour les utilisateurs XML | Modรฉrรฉe | Plus raide, nรฉcessite le DSL |
| Le mieux adaptรฉ pour | Projets hรฉritรฉs et constructions hautement personnalisรฉes | Standard Java projets | Grands modules multiples et Android projets |
Ant reste le choix pragmatique lorsqu'une configuration ne correspond pas ร une disposition standard, ou lorsqu'un projet existant dรฉpend dรฉjร de cibles รฉcrites ร la main.
Meilleures pratiques d'utilisation d'Apache Ant
Voici quelques bonnes pratiques pour l'utilisation d'Apache Ant.
- Vous devez automatiser la numรฉrotation des builds ร l'aide de fichiers de propriรฉtรฉs.
- Mettez en ลuvre une configuration de compilation personnalisable grรขce aux fichiers de propriรฉtรฉs par dรฉfaut et de compilation. Ces fichiers vous permettent de stocker les propriรฉtรฉs qui dรฉfinissent les donnรฉes de votre processus de compilation, telles que la version du compilateur et les paramรจtres d'optimisation.
- Vous pouvez rรฉutiliser des bibliothรจques prรฉdรฉfinies ร l'aide de fichiers de propriรฉtรฉs de bibliothรจque.
- Attribuez ร chaque cible un attribut de description, afin que
ant -projecthelpliste un rรฉsumรฉ utilisable de la configuration. - Conservez le rรฉpertoire cible propre sรฉparรฉment et ne supprimez jamais un rรฉpertoire contenant รฉgalement des fichiers sources.
Avantages de l'utilisation d'Apache Ant
Voici les avantages de l'utilisation d'Apache Ant :
- Ant est indรฉpendant de toute plateforme, ce qui vous permet de gรฉrer les propriรฉtรฉs spรฉcifiques ร chaque plateforme, telles que les sรฉparateurs de fichiers.
- Ant vous permet d'effectuer des tรขches spรฉcifiques ร la plateforme, comme la modification de la date de modification d'un fichier ร l'aide de la commande ยซ touch ยป.
- Les scripts Ant sont รฉcrits en langage clair. XMLSi vous รชtes dรฉjร familiarisรฉ avec XML, vous pourrez apprendre Ant rapidement.
- Ant propose une longue liste de tรขches prรฉdรฉfinies.
- Elle offre une interface pour le dรฉveloppementping tรขches personnalisรฉes.
- Vous pouvez facilement lancer Ant depuis la ligne de commande, ce qui permet l'intรฉgration avec les IDE gratuits et commerciaux.
- Vous n'avez besoin que d'une JVM, donc il fonctionne partout oรน une JVM est disponible.
- Apache Ant est une bibliothรจque open source qui permet aux utilisateurs d'accรฉder au code source et de le reproduire.
- Apache Ant est un outil multiplateforme qui vous permet de gรฉrer Java le chemin de classe et la structure des rรฉpertoires de fichiers de maniรจre abordable.
- Apache Ant est facilement extensible en utilisant Java et d'autres langages de programmation.
- Apache Ant offre une prise en charge intรฉgrรฉe du dรฉveloppement J2EE, notamment la compilation et le packaging EJB.
- Vous pouvez l'utiliser aussi bien pour un petit projet personnel que pour un grand projet logiciel ou un site web.
Ant est frรฉquemment associรฉ ร un outil d'exรฉcution de tests et ร un serveur d'intรฉgration continue. Voir JUnit pour la couche de test, Jenkins pour les compilations planifiรฉes, et utilisation d'Apache Ant avec Selenium pour l'automatisation des tests de navigateur. Les rapports gรฉnรฉrรฉs lors d'une compilation peuvent รชtre rendus avec JasperRapports.













