Ant est un outil de build qui permet de :
C’est un outil assez ancien qui a été intégré comme projet Apache en l’an 2000.
Il est basé sur des fichiers de configuration écrits en XML (fichier build.xml).
L’installation se fait en suivant les instructions données sur la page du projet Ant. Il est disponible à l’installation notamment via le gestionnaires de paquets.
Pour vérifier la version de Ant présente sur votre système, tapez la commande:
Créez un fichier build.xml qui va nous permettre de tester Ant:
<?xml version = "1.0"?>
<project name = "Hello World with Ant" default = "info">
<target name = "info">
<echo>Hello World - Ant</echo>
</target>
</project>Lancez maintenant la commande ant:
$ ant
Buildfile: /path/to/ant/project/build.xml
info:
[echo] Hello World - Ant
BUILD SUCCESSFUL
Total time: 0 secondsNous allons maintenant définir une propriété (property).
Modifiez maintenant le fichier build.xml comme suit:
<?xml version = "1.0"?>
<project name = "Hello World with Ant" default = "info">
<property name = "site.name" value = "www.example.com"/>
<target name = "info">
<echo>Hello World - Ant site is ${site.name}</echo>
</target>
</project>L’appel de la commande ant donne:
...
info:
[echo] Hello World - Ant site is www.example.com
...
Nous venons de définir une propriété nommée site.name.
Ajoutez les deux lignes echo dans la cible info comme suit :
<target name = "info">
<echo>Hello World - Ant site is ${site.name}</echo>
<echo>Ant version is ${ant.version}</echo>
<echo>Base dir is ${basedir}</echo>
</target>On obtient au lancement de ant:
info:
[echo] Hello World - Ant site is www.example.com /tmp/path/to/ant/project
[echo] Ant version is Apache Ant(TM) version 1.10.2 compiled on February 3 2018
[echo] Base dir is /tmp/path/to/ant/project
Nous venons d’utiliser des propriétés pré-définies. En voici une liste :
| Nom | Définition |
|---|---|
| ant.file | Le chemin complet vers le fichier de build |
| ant.version | La version de Ant |
| basedir | Répertoire de base du build. Peut être spécifié avec l’attribut basedir de l’élément project |
| ant.java.version | Version de Java utilisée |
| ant.project.name | Le nom du projet (attribute name de l’élément projet) |
| ant.project.default-target | Cible par défaut du projet actuel |
| ant.project.invoked-targets | Cible invoquées (liste séparée par des virgules) du projet |
| ant.core.lib | Chemin vers la librairie Ant (fichier JAR) |
| ant.home | Répertoire d’installation de Ant (ANT_HOME) |
| ant.library.dir | Répertoire des librairies Ant. En général: ANT_HOME/lib |
| file.separator | le séparateur des noms de répertoire |
Vous pouvez tester ces propriétés avec le fichier suivant:
<?xml version = "1.0"?>
<project name = "Hello World with Ant" default = "info">
<property name = "site.name" value = "www.example.com"/>
<target name = "info">
<echo>Hello World - Ant site is ${site.name} ${basedir}</echo>
<echo>Ant version is ${ant.version}</echo>
<echo>Base dir is ${basedir}</echo>
<echo>Java version is ${ant.java.version}</echo>
<echo>ant.project.name is ${ant.project.name}</echo>
<echo>ant.project.default-target : ${ant.project.default-target}</echo>
<echo>ant.project.invoked-targets : ${ant.project.invoked-targets}</echo>
<echo>ant.core.lib : ${ant.core.lib}</echo>
<echo>ant.home : ${ant.home}</echo>
<echo>ant.library.dir : ${ant.library.dir}</echo>
<echo>file.separator : ${file.separator}</echo>
</target>
</project>Il est possible de définir les propriétés d’un projet (son nom, sa version, etc) directement dans le fichier build.xml.
Cependant, une pratique courante consiste à placer un fichier nommé build.properties à côté du fichier build.xml
Créez le fichier build.properties et y placer les éléments suivants:
site.name = www.example.com
build.version = 1.2.3
Modifiez le fichier build.xml comme suit:
<?xml version = "1.0"?>
<project name = "Hello World with Ant" default = "info">
<property file = "build.properties"/>
<target name = "info">
<echo>Hello World - Ant site is ${site.name}</echo>
<echo>Project version is ${build.version}</echo>
</target>
</project>L’exécution de Ant donne alors: