Fourmi : une petite chose qui peut construire de grandes choses.
Offrir un outil semblable à make mais portable et extensible grâce à Java.
Ant exécute :
Tout projet est paramétrable via les propriétés système de Java.
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).
Chaque tâche Ant est réalisée par une classe implémentant l'interface Task
.
<exec>
Ant | Version | 1 | 2 | Commentaire | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Release | 1 | 2 | 3 | 4 | 5 | 0 | ||||
Domaine | Fixpack | 0 | 1 | 0 | 1 | |||||
Ant | Sous-projet | <a href="https://ant.apache.org/manual/CoreTasks/ant.html">ant</a>
|
||||||||
Appel de cible | Non | <a href="https://ant.apache.org/manual/CoreTasks/antcall.html">antcall</a> |
||||||||
SGBD | SQL | Non | <a href="https://ant.apache.org/manual/CoreTasks/sql.html">sql</a>
|
|||||||
Propriétés | <a href="https://ant.apache.org/manual/CoreTasks/property.html">property</a>
|
Constantes ou lecture depuis un fichier | ||||||||
Archives | JAR | <a href="https://ant.apache.org/manual/CoreTasks/jar.html">jar</a>
|
||||||||
WebApp | Non | <a href="https://ant.apache.org/manual/CoreTasks/war.html">war</a>
|
||||||||
Enterprise ARchive | Non | <a href="https://ant.apache.org/manual/CoreTasks/ear.html">ear</a>
|
||||||||
Exécution | JVM | <a href="https://ant.apache.org/manual/CoreTasks/java.html">java</a>
|
Possibilité d'utiliser la JVM exécutant Ant ou une autre (fork), permettant ainsi de fournir des jvmargs (classpath, -D, etc.) | |||||||
Programme externe | <a href="https://ant.apache.org/manual/CoreTasks/exec.html">exec</a>
|
|||||||||
Développement | Compilation | <a href="https://ant.apache.org/manual/CoreTasks/javac.html">javac</a> |
||||||||
Documentation | API Java | Non | <a href="https://ant.apache.org/manual/CoreTasks/javadoc.html">javadoc</a> |
|||||||
Système de fichiers | Déplacement | Non | <a href="https://ant.apache.org/manual/CoreTasks/move.html">move</a> |
|||||||
Renommage | rename |
|||||||||
Renommage d'extension | renameext |
|||||||||
Copie de fichier | copyfile |
<a href="https://ant.apache.org/manual/CoreTasks/copy.html">copy</a> |
||||||||
Copie de répertoire | copydir |
|||||||||
Suppression de répertoire | deltree |
<a href="https://ant.apache.org/manual/CoreTasks/delete.html">delete</a>
|
||||||||
Supression | Non | |||||||||
Création de répertoire | <a href="https://ant.apache.org/manual/CoreTasks/mkdir.html">mkdir</a> |
|||||||||
Qualité | Audit de code | <a href="https://ant.apache.org/manual/OptionalTasks/jdepend.html">jdepend</a>
|
Optionnel | |||||||
Tests unitaires | <a href="https://ant.apache.org/manual/OptionalTasks/junit.html">junit</a> |
JUnit doit se trouver dans le classpath | ||||||||
Déploiement | J2EE | <a href="https://ant.apache.org/manual/OptionalTasks/serverdeploy.html">serverdeploy</a>
|
Générique, Jonas 2.4, WLS | |||||||
EJB | <a href="https://ant.apache.org/manual/OptionalTasks/ejb.html">ejbjar</a> |
Optionnel. BES 4.5, iPlanet 6.0, JBoss 2.1 et ultérieurs, WLS 5.1/6.0 avec weblogic.ejbc, WAS 4.0, TOPLink for WLS 2.5.1, JOnAS 2.4.x et 2.5 |
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>>