1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 31 32 

Ant - L'automatisation des tâches du programmeur

8.3.Tâches

Voici une brève liste des commandes les plus généralement utilisées.

8.3.1.copy

Permet de copier plusieurs fichiers dans un répertoire. Les fichiers du répertoire source ne sont copiés que s’ils sont plus récents que ceux du répertoire de destination ou lorsqu’ils n’existent pas déjà dans le répertoire de destination. Cependant, les fichiers plus récents peuvent toujours être écrasés par overwrite.
Attribut
Description
file
Le fichier à copier, au cas où aucun fileset n’est défini, file est un attribut obligatoire.
tofile
Fichier de destination, est utilisé si l’attribut file est défini
todir
Répertoire de destination. A spécifier lors de la définition de l’attribut file ou d’un jeu de fichiers
overwrite
Défini à yes, cet attribut permet d’écraser les fichiers récents. La valeur par défaut « no » protège les fichiers cible les plus récents.

8.3.2.delete

La tâche delete permet de supprimer plusieurs fichiers ou répertoires. Des jeux de fichiers peuvent être spécifiés à l’aide des includes, excludes, etc, … ou encore dans un élément fileset emboîté.
Attribut
Description
file
Supprimer le fichier indiqué. L’un ou l’autre des attributs file ou dir doit être déclaré.
dir
Supprime le répertoire indiqué et, récursivement, tous ses sous-répertoires. Les répertoires vides ne sont pas supprimés par défaut. L’un des deux attributs file ou dir doit être nécessairement spécifié.
quiet
True entraîne la suppression des messages d’erreur, lorsque des fichiers/répertoires n’existent pas. False (valeur par défaut) affiche les messages d’erreur.

On peut utiliser le marqueur interne « fileset ». La section Jeux de fichiers décrit les spécifications d’un ensemble de fichiers, qui peuvent être spécifiés dans un marqueur interne.
Exemple :
Le deuxième delete de l’exemple suivant efface le répertoire build.
<target name="clean">
<delete file="/lib/chess.jar" />
<delete dir="build" />
</target>
Tous les fichiers avec l’extension .class sont supprimés de l’arborescence à partir du répertoire « sub/tmp » :

<delete>
<fileset dir="sub/tmp" includes="**/*.class" />
</delete>

8.3.3.echo

Affiche un texte arbitraire dans la fenêtre du shell ou dans un fichier.

Attribut
Description
Message
Spécifie le message de sortie. Obligatoire si le message ne se trouve pas dans le corps.
File
Fichier dans lequel le message doit être écrit
Append
Indique si le message doit être ajouté à la fin du fichier. Si la valeur de cet attribut est false, le fichier de destination est écrasé. True attache le message.

Exemples :

L’exemple retourne une simple information :
<echo
message="Statut : tous les fichier *.lib ont été créés avec succès. " />
Une chaîne plus longue et une ligne vide sont retournées ici :
<echo>
Informaton de statut : les 42 fichiers *.lib ont été créés avec succès et ont été copées dans le répertoire de production.
</echo>
Le dernier exemple qui suit ajoute une information de log à un fichier log.txt existant, et utilise la propriété DSTAMP produite pas l’intermédiaire de TSTAMP :
<echo
file="log.txt"
append="true"
message="LOG: conversion réussie le ${DSTAMP}."/>

8.3.4.jar

Permet la création d’une archive jar.
Les fichiers peuvent être spécifiés à l’aide de fileset et aussi comme éléments imbriqués dans l’élément jar. On peut aussi spécifier includes, excludes, etc. comme attributs de jar pour une définition plus compacte.


Attribut
Description
Jarfile
Nom du fichier jar à créer.
Basedir
Répertoire source,à partir duquel les fichiers à archiver dans le fichier jar doivent être lus.
Compress
Compress est par défaut true, autrement dit, le fichier est compressé. False empêche la compression.
Filesonly
Avec true, seuls les fichiers sont archivés. Cependant le paramètre par défaut est false, car on a besoin aussi en règle générale d’archiver aussi les répertoires.
Includes
Liste de fichiers séparés par des virgules, qui doivent être utilisés.
Excludes
Liste de fichiers séparés par des virgules, qui ne doivent pas être utilisés.
Manifest
Permet la spécification du fichier manifest. Ce fichier permet de définir la classe contenant la fonciton main, entre autre.
Update
Dans le cas où le fichier existe déjà, spécifie si ce fichier doit être remplacé.
Exemple :

L’exemple suivant suppose que tous les fichiers source de la tâche javac dans build ont été créés. Ce répertoire source est rassemblé dans une archive jar et écrit dans lib :
<jar jarfile="${lib.dir}/ejbs.jar" basedir="${build.dir}"/>
Dans l’exemple suivant, sont pris en compte dans le marqueur jar tous les fichiers « class », et les fichiers dont le nom contient la chaîne test, sont explicitement exclus.
<jar jarfile="lib/ejbs.jar">
<fileset dir="${build.dir}/classes"
excludes="**/*test*"/>
</jar>

8.3.5.java

Exécute une classe Java.
Cette tâche comporte un attribut fork permettant de démarrer une machine virtuelle Java, de sorte que le programme à la fin de l’exécution du code Java met un terme à la machine virtuelle VM avec System.exit(0), mais non à la machine virtuelle du build.
Attribut
Description
Classname
Le nom de la classe qui doit être démarrée. On doit indiquer comme paramètre, soit classname, soit jar.
Jar
Par opposition à classname, jar permet de spécifier ici un fichier jar. L’attribut jar doit posséder une entrée Main-Class dans le fichier manifest, et fork doit être défini sur true.
Classpath
Le chemin de classe. En présence de plusieurs chemins, il est recommandé d’utiliser class-path comme élément interne de Java (voir l’exemple ci-dessous).
Fork
Autorise le démarrage d’une classe dans une autre machine virtuelle Java. Désactivé par défaut.
Jvm
Dans le cas où fork est défini, jvm donne l’ordre permettant de démarrer la machine virtuelle.
Jvmarg (élément imbriqué)
Dans le cas où fork est défini, les arguments de la classe dans la nouvelle machine virtuelle sont définis ici.
Dir
Si fork est défini, permet de spécifier le répertoire pour l’exécution de la nouvelle machine virtuelle.
Output
Les sorties sont écrites dans un fichier.
Marqueurs internes
Arg et jvmarg peuvent être utilisés dans Java comme arguments de la ligne de commande. Par exemple :
<arg line="arg1 arg2 arg3"/>
Exemples
Cet exemple exécute une classe Java en lui passant des arguments avec l’élément arg. Une ligne est passée comme argument avec line. Les noms de fichiers, contenant des espaces, doivent être déclarés avec l’attribut value.
<java classname="foo.bar.Main">
<arg line="-verbose ${src.dir}/*.java"/>
</java>
L’exemple suivant appelle une classe qui doit être exécutée dans une nouvelle machine virtuelle. Le chemin de classe est défini comme élément interne classpath de Java et contient deux références aux fichiers jar et à un élément de chemin, pointant vers un chemin de classe prédéfini

<java classname="org.labo.computer.Main" fork="yes">
<classpath>
<pathelement location="lib/${jarname}"/>
<pathelement location="ext/tools.jar"/>
<pathelement path="${classpath}"/>
</classpath>
</java>

8.3.6.javac

Compile une arborescence de répertoires qui contient le code source Java.
Cette tâche permet de parcourir les répertoires de manière récursive et de compiler tous les fichiers Java n’ayant pas de fichier de classe correspondant ou dont le fichier de classe est plus ancien qu’ils ne le sont.
Attribut
description
Srcdir
Répertoire où se trouvent les fichiers Java. Attribut obligatoire, lorsque aucun élément src n’est spécifié dans javac.
Destdir
Répertoire dans lequel les fichiers class sont stockés.
Includes
Liste de fichiers ou de modèles, séparés par des virgules, qui peuvent être utilisés.
Excludes
Liste de fichiers ou de modèles séparés par des virgules, qui ne doivent pas être utilisés.
Classpath
Le chemin de classe à utiliser
Bootclasspath
Chemin des classes nécessaires au lancement de la machine virtuelle.
Encoding
Encodage des fichiers source.
Debug
Indique au compilateur si la compilation doit inclure les informations de débogage. La valeur par défaut est off ; autrement dit, l’information de débogage n’est pas utilisée.
Optimize
Indique si le code doit être optimisé. La valeur par défaut est off, ce signifie sans optimisation.
Target
Permet de spécifier la version Java des fichier de classe (par exemple 1.2 ou 1.4)
Fork
Yes permet d’exécuter javac dans une autre machine virutelle. La valeur par défaut est no.
Source
Assure la compatibilité des sources avec une version du jdk. Peut prendre les valeurs 1.3 ou 1.4 et ne peut être utilisé qu’avec des compilateurs Sun supèrieure à 1.3.
Marqueurs internes
Les fichiers source peuvent être spécifiés à l’aide de fileset, includes, excludes, etc (voir la section Jeux de fichier) utilisés comme élément imbriqués dans la tâche javac. Comme solution alternative, on peut spécifier includes, excludes, etc… comme attributs de la tâche javac pour des définitions de fichiers plus compactes.
Par ailleurs, srcdir, classpath, bootclasspath et extdir peuvent être utilisés comme éléments internes de javac et comme structures de chemins.

Exemples :
Le premier exemple compile toutes les sources du répertoire actuel et écrit l’ensemble de l’arborescence avec tous les fichiers de classe dans WEB-INF/classes.

<javac srcdir="." Destdir="WEB-INF/classes" />
Dans le second exemple, l’option verbose est active et le texte source de même que includes et excludes sont spécifiés comme marqueurs internes :

<javac destdir="${build.dir}" verbose="true">
<src path="${brain}"/>
<src path="${graphics}"/>
<include name="${package1}/**"/>
<exclude name="${package1}/*test*"/>
</javac>

8.3.7.javadoc

Permet la création d’une documentation javadoc.
La documentation de l’API est générée à partir des sources Java qui sont recherchées dans un ou plusieurs répertoires que l’on renseignera dans un attribut « sourcepath » ou un élément imbriqué.

Attribut
Description
Sourcepath
Spécifie l’emplacement des sources. L’un des attributs sourcepath ou sourcepathref doit être défini. Sourcepath n’est pas un attribut requis dans la mesure où le marqueur emboîté <sourcepath> est spécifié.
Destdir
Définit le répertoire cible dans lequel seront écrits les fichiers javadoc. Attribut obligatoire.
Sourcefiles
On peut spécifier directement le code source à l’aide d’une liste de fichiers source, séparés par des virgules. L’un des attributs sourcefiles ou packagenames doit être défini. N’est pas obligatoire dans le cas où les marqueurs <source> ou <package> sont spécifiés.
Exemple :
Cet exemple génère une documentation dans le répertoire javadoc. Private est une option javadoc qui permet d’englober dans la documentation les classes et les champs privés, ainsi que les méthodes privées des classes.

A l’aide des attributs packagenames et excludepackagenames, des classes peuvent être inclues ou exclues 
<javadoc packagenames="org.labosun.project"
sourcepath="."
destdir="."
private="true" />

8.3.8.taskdef

« taskdef » sert à définir une nouvelle tâche dans le projet actuel. « taskdef » est appelée soit avec les attributs « name » et « classname », soit avec uniquement « name » et « classname », soit avec uniquement l’attribut « file » ou l’attribut « resource ».
Attribut
Description
Name
Le nom de l’élément XML par lequel la tâche est invoquée. Attribut obligatoire, si file ou resource ne sont pas spécifiés.
Classname
Nom de la classe qui implémente la nouvelle tâche. Attribut obligatoire si file ou resource ne sont pas spécifiés.
Resource
Nom d’un fichier de propriétés comportant des paires nom/classe.
Classpath
CLASSPATH dans lequel se trouvent les classes Java implémentant les tâches.
Exemple:
<taskdef name="myGenerator"
classname="org.labosun.anttask.generator" />

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 31 32 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Essentiels de cours Java
JavaEJB 3 - Les Entreprise Java Bean version 3 (JavaBeans)
Cet essentiel est la suite de « Entreprise JavaBean 2.1 ». Cependant, nous allons étudier les nouvelles spécifications 3.0 qui simplifient énormément le développement par rapport aux EJB 2.6/20/06
JavaSWT - Créer des interfaces graphiques performantes
SWT (Standard Widget Toolkit) est une librairie graphique qui vous permet de réaliser des applications graphiques Java beaucoup plus avancées et surtout plus rapide à l’exécution.1/29/06
JavaStruts - Un framework MVC pour vos applications J2EE
Struts est un framework open-source qui vous permet de gagner du temps, mais qui permet aussi de voir des applications complexes comme une suite de composants de base : Vues, Actions, Modèles. Vous gagnez ainsi en évolutivité et en lisibilité du code.1/13/06
JavaHibernate - Persistance objet - relationnel
Cet essentiel explique comment utiliser Hibernate afin de gérer la persistance objet relationnel au sein de vos applications Java.12/14/05
JavaIntroduction J2EE - Applications d'entreprise
Cours d'introduction aux diverses technologies et outils que l'on peut rencontrer dans le monde du Java orienté entreprise J2EE12/14/05
JavaEJB 2 - Les Entreprise Java Bean (JavaBeans)
L'objectif avec EJB2 (Entreprise JavaBeans) est d'introduire les concepts de l’Ingénierie Logicielle Basée sur les Composants.12/14/05
JavaDesign Patern - Améliorez l'architecture de vos programmes
Afin de répondre a des situation récurrentes en programmation, les "design partern" apportent une solution type à beaucoup de contraintes liées à la programmation objet.12/14/05
JavaArchitecture J2EE - Comment organiser son application J2EE
Ce cours explique comment créer un code modulable, lisible et évolutif afin d'assurer la pérénité de son application.12/14/05
JavaLes web-services - Publication de services
Le développement tend vers les technologies du Web. Il est difficile de faire la distinction entre les différents logiciels qui sont de plus en plus intégrés au Web. Les Web Services rentrent dans l’optique de différencier bien précisément les couches.12/14/05
JavaAnt - L'automatisation des tâches du programmeur
Ecrire des scripts afin d'exécuter les tâches récurrentes10/31/05
JavaIntroduction au langage Java - Présentation & historique
Présentation des origines du langage, ainsi que se buts premiers8/11/05
JavaLa Syntaxe Java - Bases & nomenclatures
Bases de la syntaxe du langage Java8/11/05
JavaLes Classes - Concepts & héritage
Base du développement objet en Java grâce aux classes8/11/05
JavaLes Exceptions - Gestion d'erreurs
Gérer les erreurs liés à la programmation8/11/05

Articles
Eclipse Europa : le successeur de Callisto
Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont réticents aux « distributions » d'Eclipse se rassu12/21/07
JavaCruiseControl : l’outil d’intégration continue à avoir dans sa boite à outils
CruiseControl est un projet open-source offrant de multiples fonctionnalités pour l’intégration, que ce soit pour des développements Java ou .Net. Il est courant sur un projet d’être plusieurs développeurs avec des tâches de développement réparties. Dans7/2/07
JavaEJB3 - Des concepts à l'écriture du code - Editions DUNOD
Consulter le résumé du premier ouvrage du laboratoire Sun de SUPINFO : EJB3 - Des concepts à l'écriture du code. Guide du développeur, éditions DUNOD.5/27/07
JavaPassage de certification Java Web (SCWCD)
Passer une certification est toujours un moment important car cela permet de mieux faire reconnaître ses compétences face à un recruteur ou un employeur.5/12/07
JavaGoogle Web Toolkit
Google Web Toolkit est un framework java pour générer du javascript et des requêtes Ajax à partir d’un code java. Voilà comment il fonctionne.5/10/07
JavaJ2ME Vs SDE
Demain, les terminaux « légers » seront plus nombreux que les ordinateurs personnels, ce qui entraîne une bataille sur le choix d’une plateforme identique à tous ces terminaux… Aujourd’hui nous retrouvons le J2ME ainsi que le SDE qui s’offrent une rude b4/22/07

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright 2000-2006 SUPINFO Paris, Paris Academy of Computer Science
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée