Portail collaboratif de partage de la connaissance
Bienvenue sur A525G, un portail collaboratif que tout le monde peut faire évoluer.
informatique
Apache Ant est un projet du groupe Apache-Jakarta. Son but est de fournir un outil écrit en Java pour permettre la construction d'applications (compilation de programmes et exécution d'autres tâches).
Ant, comparativement à d'autres outils de type «make», a la particularité d'être indépendant de toute plate-forme (Unix, Linux, Windows...). Il devient donc un outil fort intéressant dans le cas où on doit développer une application sur plusieurs plates-formes ou encore migrer une application d'une plate-forme vers une autre.
Ant repose sur un fichier de configuration au format XML. Ant fournit par défaut un groupe de tâches courantes représentées sous forme d'objet en langage Java. Ant fournit également la possibilité de créer ses propres objets Java pour exécuter des tâches plus spécifiques et non fournies avec l'application de base.
Pour en faire une brève description, le fichier de configuration d’Ant fonctionne de la façon suivante. Le fichier contient un ensemble de cibles (target). Chaque cible contient une ou plusieurs tâches. Certaines cibles peuvent être dépendantes d'autres cibles pour être exécutées.
Puisque Ant repose sur la technologie Java, il faut d'abord installer le JDK. Ant s'installe sur la majorité des plates-formes.
Sur Windows, il suffit de :
Pour d'autres plates-formes, vous pouvez consulter la documentation d'installation sur le site ant.apache.org.
Note : Sous Windows XP et autres version de Windows, vous pouvez ajouter des variables d'environnement en effectuant un clic droit de la souris sur l'icône d'ordinateur situé sur le bureau de Windows et en choisissant «Propriétés» dans le menu contextuel. Dans la fenêtre «Propriétés système» qui s'affiche, cliquer sur l'onglet «Avancé». Dans cet onglet, cliquer sur le bouton «Variables d'environnement».
Voici la syntaxe de base pour utiliser Ant en mode ligne de commande : ant [options] [cible]
Par défaut, Ant recherche un fichier nommé build.xml dans le répertoire courant. Si il trouve ce fichier, il exécute la cible par défaut.
Ant possède plusieurs options dont voici les principales :
Comme son suffixe l'indique, c'est un fichier de type XML. Il doit donc commencer (comme tout fichier XML valide) par l'en-tête <?XML version="1.0" ?>.
L'élément racine du fichier XML est <project>.
Celui-ci peut contenir les attributs suivants :
À ce stade du tutoriel de Ant, on pourrait créer un fichier build.xml minimal qui ressemblerait à ceci :
<?xml version="1.0" ?>
<project name="mon premier projet" default="compile" basedir=".">
</project>
Ceci est du XML valide, mais le fichier ne fonctionnerait pas encore correctement, car il lui manque la description de la cible compile définie dans l'attribut default.
Note : Comme tout fichier XML, vous pouvez ajouter des commentaires dans votre fichier build.xml de la façon suivante :
<!-- Exemple de commentaire -->
Il est possible d'ajouter des propriétés dans le fichier build.xml en utilisant la balise <property>. La balise project est donc souvent suivie de balises property.
Voici les attributs de la balise property
Ant priorise toujours la première valeur de propriété qu'il rencontre. Par exemple, si vous créez un fichier build.xml contenant une propriété nommée version avec une valeur «1.0» et que vous appelez ensuite Ant à partir de la ligne de commande avec -Dversion=1.1, Ant utilisera alors 1.1 comme valeur pour la propriété version puisque la propriété définie dans la ligne de commande est exécutée par Ant avant de lire le fichier build.xml.
Pour utiliser une propriété définie dans le fichier build.xml, on doit utiliser la syntaxe suivante : ${nom_de_propriete}
Par exemple, si vous avez défini votre propriété «version» de la façon suivante :
<property name="version" value="1.0" />
vous pourrez vous servir de cette propriété de cette façon :
${version}
Il existe quelques propriétés prédéfinies dans Ant et utilisables dans vos fichiers build.xml. En voici la liste :
Ant possède une balise <fileset> qui permet de définir un groupe de fichiers qui devront être utilisés dans une tâche.
Voici la liste des propriétés de la balise <fileset>
Exemple :
<fileset dir="abc" includes="**/*.java" />
ou encore
<fileset dir="abc">
<include name="**/*.java" />
</fileset>
Note : L'expression **/ permet de préciser d'inclure tous les sous répertoires du répertoire défini dans l'attribut dir. *.java permet de spécifier d'inclure tous les fichiers portant l'extension.java.
Dans Ant, les cibles sont représentées par la balise <target>. Tel que décrit en introduction de ce document, une cible est regroupement de tâches à réaliser dans un ordre défini.
Voici la liste des attributs de la balise target :
Tel que décrit brièvement en introduction, une tâche est une unité de traitement représentée par un objet en langage Java. Ant fournit par défaut une série de tâches pour l'exécution de traitements standards.
voici une liste des principales tâches :
Maintenant que nous connaissons un peu mieux le fonctionnement de Ant, passons à la pratique.
Tel que décrit ci-dessus, la tâche echo permet d'écrire dans un fichier ou d'afficher un message ou des informations durant l'exécution d'un traitement.
Voici la liste des principaux attributs de la tâche echo :
Exemple :
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Exemple echo avec Ant" default="init" basedir=".">
<!-- Cible d'initialisation par défaut -->
<target name="init">
<echo message="Debut des traitements" />
<echo>Fin des traitements du projet ${ant.project.name}</echo>
<echo file="${basedir}/log.txt" append="false" message="Debut des traitements" />
<echo file="${basedir}/log.txt" append="true" >Fin des traitements</echo>
</target>
</project>
Note : Si vous prévoyez utiliser des caractères accentués dans votre fichier XML, n'oubliez pas d'ajouter ISO-8859-1 dans l'attribut Encoding de l'en-tête XML.
Buildfile: build.xml
init:
[echo] Debut des
[echo] Fin des tr
BUILD SUCCESSFUL
Total time: 0 seconds
Tel que décrit ci-dessus, la tâche <mkdir> permet de créer un répertoire.
Cette tâche possède un seul attribut que voici :
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Exemple mkdir avec Ant" default="init" basedir=".">
<!-- Cible d'initialisation par défaut -->
<target name="init">
<echo>Début des traitements du projet ${ant.project.name}</echo>
<echo>Création du répertoire abc</echo>
<mkdir dir="${basedir}/abc" />
<echo>Fin des traitements du projet ${ant.project.name}</echo>
</target>
</project>
Buildfile: build.xml
init:
[echo] Début des traitements du projet Exemple echo avec Ant
[echo] Création du rÚpertoire abc
[mkdir] Created dir: C:\projects\progs\eclipse\plugins\org.apache.ant_1.7.0.
v200706080842\bin\abc
[echo] Fin des traitements du projet Exemple echo avec Ant
BUILD SUCCESSFUL
Total time: 0 seconds
La tâche <copy> permet de copier un ou plusieurs fichiers.
Voici les principaux attributs de la tâche copy :
L'ensemble des fichiers concernés par la copie doit être précisé avec une balise <fileset>.
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Exemple copy avec Ant" default="init" basedir=".">
<!-- Exemple de définition de propriétés Ant -->
<property name="projet.src.dir" value="test-src"/>
<property name="projet.target.dir" value="test-target"/>
<!-- Cible d'initialisation par défaut -->
<target name="init" description="Cible d'initialisation">
<echo>Début des traitements du projet ${ant.project.name}</echo>
<echo>Création du répertoire test-target</echo>
<mkdir dir="${basedir}/${projet.target.dir}" />
<echo>Copies des fichiers dans test-target</echo>
<copy todir="${basedir}/${projet.target.dir}" >
<fileset dir="${basedir}/${projet.src.dir}" >
<include name="**/*.txt"/>
<include name="**/*.xml"/>
</fileset>
</copy>
<echo>Fin des traitements du projet ${ant.project.name}</echo>
</target>
</project>
Buildfile: build.xml
init:
[echo] Début des traitements du projet Exemple copy avec Ant
[echo] Création du répertoire test-target
[mkdir] Created dir: C:\projects\progs\eclipse\plugins\org.apache.ant_1.7.0.
v200706080842\bin\test-target
[echo] Copies des fichiers dans test-target
[copy] Copying 3 files to C:\projects\progs\eclipse\plugins\org.apache.ant_
1.7.0.v200706080842\bin\test-target
[echo] Fin des traitements du projet Exemple copy avec Ant
BUILD SUCCESSFUL
Total time: 0 seconds Auteur : sylbil
Date de mise en ligne : 2008-03-31 18:20:00
Réagir à cet article
Apache Ant
merci
2009-05-27 00:00:00
Apache Ant
Merci c'est très interessant !!
2009-03-01 00:00:00