Ant 1. Installation 2. Utilisation

Transcription

Ant 1. Installation 2. Utilisation
http://www.irit.fr/~Philippe.Truillet
Ant
Ph. Truillet
Septembre 2016 – v. 1.3
Ant (http://ant.apache.org) est un outil créé par la fondation Apache qui permet de gérer la construction d’une
application. Le nom est un acronyme pour « Another Neat Tool » (un autre chouette outil). A l’origine, Ant est un sous-projet
de Jakarta puis est depuis devenu l’un des projets majeurs de la fondation, de par son utilité et sa popularité.
Ant peut se comparer à la commande make (même rôle, mêmes fonctionnalités) et Apache maven
(http://maven.apache.org - qui fournit des moyens de configuration plus simples). Il offre l’avantage de pouvoir
intégrer des tests tout du long du processus de construction (avec JUnit par exemple), d’être multi-plateforme (Java oblige)
et d’être extensible de multiples manières.
Couplé à des systèmes de gestion de version comme CVS ou SVN, Ant permet par exemple de créer des « nightly builds » :
chaque nuit, sur une machine donnée, il compile l’ensemble des fichiers sources d’un projet ensemble, et fait son rapport
au(x) développeur(s). Cela permet de générer des versions utilisables, de tester les lignes de code de la journée, et de faire
passer une batterie de tests à l’ensemble du projet - le tout sans intervention humaine. Lorsque l’équipe de développement
arrive le lendemain, le rapport de Ant peut leur permettre de cerner les erreurs, ou de constater que le programme se compile
parfaitement et est fonctionnel.
1. Installation
Après avoir téléchargé une distribution du produit (dernière version publiée : 1.9.7 au 12 avril 2016) à l’adresse
http://ant.apache.org/bindownload.cgi et l’avoir décompressé dans son répertoire définitif, il faut créer les
trois variables d’environnement nécessaire au fonctionnement d’Ant.
Par exemple, sous Windows au lancement du script dans un fichier .bat, ou via l’onglet « Avancé » des propriétés système
(Menu Démarrer | Panneau de configuration | Système | Paramètres Système Avancés | Variables d’environnement):
SET ANT_HOME=C:\ant
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10 (chemin vers la jdk)
SET PATH=%PATH%;%ANT_HOME%\bin
2. Utilisation
2.1 le fichier build.xml
Ant permet de gérer l’ensemble des travaux à l’aide d’un fichier XML nommé build.xml, spécifique à chaque projet, qui
permet de spécifier les cibles, dépendances, conditions, opérations et paramètres de la construction.
<project name="monprojet" default="dist" basedir=".">
<description>Construction de mon projet</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<property name="doc" location="doc"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}" classpath="${build};." />
</target>
Page 2
Apache Ant
<target name="dist" depends="compile"
description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in ${build} into the monprojet_version.jar file -->
<jar jarfile="${dist}/lib/monprojet.jar" basedir="${build}"/>
</target>
<target name="javadoc" depends="init,compile,dist" description="Create the javadoc" >
<!-- Javadoc the java code from ${src} into ${doc} -->
<!-- Create the distribution directory -->
<mkdir dir="${doc}"/>
<javadoc destdir="${doc}" author="true" version="true">
<classpath path="${lib}" />
<source file="${src}/monprojet.java" />
<package name="fr.irit.ihcs.util "/>
<sourcepath location="${src}" />
</javadoc>
</target>
<target name="clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
<delete dir="${doc}"/>
</target>
<target name="demo" depends="init,compile,dist" description="Runs the demo monprojet>
<java classname="fr.irit.ihcs.util.monprojet" classpath="${dist}/lib/monprojet_1.0.jar" fork="true"/>
</target>
</project>
Exemple de fichier build.xml
Ce fichier build.xml est assez simple facile à lire : on arrive à deviner quelles sont les tâches décrites ici : init, compile,
dist, javadoc, clean et demo.
L’attribut default de la balise globale project permet de pointer vers la balise target à exécuter. Etant donné que, via
l’attribut depends, chaque balise target dépend de la précédente, on permet ainsi le parcours de toutes les opérations à
accomplir. De son coté, la cible init, qui sert à initialiser certaines propriétés (une sorte de constructeur, donc) est toujours
appelée en premier.
Bien qu’optionnel, cet attribut depends se rend très utile car il permet donc de conditionner les tâches du fichier : une tâche
donnée ne sera exécutée que si celle dont elle dépend est terminée, et ainsi de suite.
Nota : Les commandes deltree, mkdir et javac, bien que connues, font en fait appel à des fonctions de Ant. Ant dispose
d’ailleurs un bon nombre de commandes : copydir, jar, javadoc...
2.2 commandes ant
Une fois le fichier XML construit et placé dans son dossier de projet, il suffit ensuite de taper ant dans la console pour
construire l’application.
Il est toutefois possible de lui donner une « cible » pour n’accomplir qu’une des tâches définies dans le fichier build.xml
comme ant compile pour compiler les sources ou ant demo pour lancer l’application 
3. Références


Développons en java : http://www.jmdoudoux.fr/java/dej/chap059.htm
Apache Ant 19.2 Manual, http://ant.apache.org/manual/index.html