Ant

Fourmi : une petite chose qui peut construire de grandes choses.

Besoin

Offrir un outil semblable à make mais portable et extensible grâce à Java.

Conception

Ant exécute :

Tout projet est paramétrable via les propriétés système de Java.

Implémentation

Tout projet Ant est défini via un fichier XML.

Ant peut lire une propriété système via la syntaxe <strong>${</strong><em>nomPropriété</em><strong>}</strong>. Cela lui permet de lire les propriétés fixées par la plate-forme Java (<strong>${java.class.path}</strong> par exemple) comme les propriétés que vous ajoutez (via un fichier .properties ou des arguments <strong>-D</strong><em>propriété</em><strong>=</strong><em>valeur</em> sur la ligne de commande).

Ecriture d'une tâche

Chaque tâche Ant est réalisée par une classe implémentant l'interface Task.

Notes

Exemples

Un exemple de script Ant est :

<<strong>project name</strong>=<span class="codeString">"MyProject"</span> <strong>default</strong>=<span class="codeString">"dist"</span> <strong>basedir</strong>=<span class="codeString">"."</span>><br> <br> <<strong>description</strong>>Exemple simple de script Ant</<strong>description</strong>><br> <br> <span class="codeComment"><!-- Fixe les propriétés globales pour ce script --></span><br> <<strong>property name</strong>=<span class="codeString">"src"</span> <strong> location</strong>=<span class="codeString">"src"</span>/><br> <<strong>property name</strong>=<span class="codeString">"build"</span> <strong>location</strong>=<span class="codeString">"build"</span>/><br> <<strong>property name</strong>=<span class="codeString">"dist"</span> <strong>location</strong>=<span class="codeString">"dist"</span>/><br> <br> <<strong>target name</strong>=<span class="codeString">"init"</span>><br> <span class="codeComment"> <!-- Crée l'horodatage --></span><br> <<strong>tstamp</strong>/><br> <span class="codeComment"><!-- Crée la structure de répertoires de destination de compilation --></span><br> <<strong>mkdir dir</strong>=<span class="codeString">"<strong>${</strong>build<strong>}</strong>"</span>/><br> </<strong>target</strong>> <br> <br> <<strong>target name</strong>=<span class="codeString">"compile"</span> <strong>depends</strong>=<span class="codeString">"init"</span> <strong>description</strong>=<span class="codeString">"Compile les sources"</span> ><br> <span class="codeComment"><!-- Compile le code source Java depuis ${src} vers ${build} --></span><br> <<strong>javac srcdir</strong>=<span class="codeString">"<strong>${</strong>src<strong>}</strong>"</span> <strong>destdir=<span class="codeString">"${</span></strong><span class="codeString">build}"</span>/><br> </<strong>target</strong>><br> <br> <<strong>target name</strong>=<span class="codeString">"dist"</span> <strong>depends</strong>=<span class="codeString">"compile"</span> <strong> description</strong>=<span class="codeString">"Génère la distribution"</span> ><br> <span class="codeComment"><!-- Crée le répertoire de distribution --></span><br> <<strong>mkdir dir=<span class="codeString">"${</span></strong><span class="codeString">dist}/lib"</span>/> <br> <span class="codeComment"><!-- Met tout ce qui est dans ${build} dans le fichier MyProject-${DSTAMP}.jar --></span><br> <<strong>jar jarfile=</strong><span class="codeString">"<strong>${</strong>dist}/lib/MyProject-${DSTAMP}.jar"</span> <strong>basedir=<span class="codeString">"${</span></strong><span class="codeString">build}"</span>/><br> </<strong>target</strong>> <br> <br> <<strong>target name</strong>=<span class="codeString">"clean"</span> <strong>description</strong>=<span class="codeString">"Nettoyage"</span> ><br> <span class="codeComment"><!-- Efface les arborescences de ${build} et ${dist} --></span><br> <<strong>delete dir=<span class="codeString">"${</span></strong><span class="codeString">build}"</span>/><br> <<strong>delete dir=<span class="codeString">"${</span></strong><span class="codeString">dist}"</span>/><br> </<strong>target</strong>><br> <br> </<strong>project</strong>>

Limitations

Voir