TUTORIELS 
Utiliser Ant
Automatisez et optimisez le processus de construction et de déploiement de vos applications à l'aide de cet outil Open Source de référence.  (12 novembre 2003)
 
Discutez en sur les forums
Ant est un outil créé par la fondation Apache (qui gère déjà le serveur éponyme, PHP, Struts, Tomcat...), qui permet de gérer la construction d'une application. A l'origine un sous-projet de Jakarta, il est depuis devenu l'un des projets majeurs de la fondation, de par son utilité et sa popularité.

Pour les habitués, il peut se comparer à la commande make (même rôle, même fonctionnalité), mais 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), d'être extensible de multiples manières...

Couplé à un système de type CVS, Ant permet de créer des "nightly builds" : chaque nuit, sur une machine de base, 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.

Installation
Après avoir téléchargé une distribution du produit et l'avoir décompressé dans son répertoire définitif, il faut impérativement créer les trois variables d'environnement nécessaire au fonctionnement d'Ant. Par exemple, sous Windows dans un fichier .bat, ou via l'onglet "Avancé" des Propriétés Système :

SET ANT_HOME=C:\tools\ant
SET JAVA_HOME=C:\j2sdk1.4.2_02
SET PATH=%PATH%;%ANT_HOME%\bin

Utilisation
Ant permet de gérer l'ensemble des travaux à l'aide d'un fichier XML, 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="monProject" default="compileProject">
  <target name="init">
    <property name="sourceDir value="/src">
    <property name="outputDir value="/classes">
  </target>

  <target name="cleanUpOutputDir" depends="init">
    <deltree dir="${outputDir}" />
  </target>

  <target name="makeOutputDir" depends="cleanUpOutputDir">
    <mkdir dir="${outputDir}" />
  </target>

  <target name="compileProject" depends="makeOutputDir">
    <javac srcdir="${sourceDir}" destdir="${outputDir}" />
  </target>
</project>

Ce premier fichier build.xml est déjà facile à lire : on comprend vite les quatre tâches à accomplir à chaque lancement : définir les chemins d'accès, effacer répertoire de destination (qui contient les fichiers du dernier lancement), créer à nouveau le dossier de destination, et lancer javac sur nos fichier .java. A la fin du processus, si toutes les étapes se sont bien déroulées, on aura nos .class dans le dossier /classes...

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.
Une opération peut aussi dépendre de plusieurs opérations : depends="makeOutputDir, cleanUpOutputDir".

Les commandes deltree, mkdir et javac, bien que connues, font en fait appel à des fonctions de Ant (et non aux commandes système directement). Ant dispose ainsi d'un bon nombre de commandes : copydir, copyfile, jar, javadoc...

Une fois le fichier XML adéquat pour votre application placée dans son dossier, il suffit ensuite de taper "ant" dans la console pour construire l'application - du moins, sa version compilable pour le moment.
L'utilisation de Ant permet de mettre en application une méthode de développement efficace, faisant appel à l'intégration continue : une application est construite autant de fois que nécessaire.

Nous verrons dans un prochain article comment intégrer Ant dans son processus de travail quotidien.

 
[ Xavier BorderieJDNet
 
Accueil | Haut de page