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éfinit via un fichier XML.

Ant peut lire une propriété système via la syntaxe ${nomPropriété}. Cela lui permet de lire les propriétés fixées par la plate-forme Java (${java.class.path} par exemple) comme les propriétés que vous ajoutez (via un fichier .properties ou des arguments -Dpropriété=valeur 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 :

<project name="MyProject" default="dist" basedir=".">

  <description>Exemple simple de script Ant</description>

  <!-- Fixe les propriétés globales pour ce script -->
  <property name="src"   location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <target name="init">
    <!-- Crée l'horodatage -->
    <tstamp/>
    <!-- Crée la structure de répertoires de destination de compilation -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init" description="Compile les sources" >
    <!-- Compile le code source Java depuis ${src} vers ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile" description="Génère la distribution" >
    <!-- Crée le répertoire de distribution -->
    <mkdir dir="${dist}/lib"/>
    <!-- Met tout ce qui est dans ${build} dans le fichier MyProject-${DSTAMP}.jar -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean" description="Nettoyage" >
    <!-- Efface les arborescences de ${build} et ${dist} -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>

</project>

Limitations

Voir