> Tech > Apache ANT

Apache ANT

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Apache ANT est un outil de construction et de déploiement compatible avec Java et XML. Je l’évoque en premier en raison de ses nombreuses qualités : facile à utiliser, très pratique et pas difficile à installer sur un iSeries. ANT (Another Neat Tool) peut être utilisé de multiples façons. Mais

on l’utilise le plus souvent pendant le déploiement pour automatiser des tâches, de manière comparable à l’utilitaire « make » sur Unix.

ANT agit en lisant un script écrit par l’utilisateur. Ce script est généralement nommé build.xml et il a une série de cibles que l’utilisateur écrit, dont chacune appelle une ou plusieurs tâches ANT.

Il ne faut pas confondre une cible et une tâche. L’utilisateur écrit des cibles pour exécuter certaines tâches qui sont généralement incluses avec ANT. Des cibles modèles vont compiler plusieurs fichiers, copier des fichiers dans un répertoire de déploiement, et arrêter et démarrer un serveur Web.

De nombreuses tâches ANT sont intégrées au programme et incluent des fonctions du genre copy, compile, execute et delete. La figure 1 montre un exemple de script ANT.

Nous allons disséquer ce script. La première ligne indique que c’est un fichier XML. Notons au passage qu’un script ANT n’a pas besoin d’une référence à un DTD (Document Type Definition) ou XML Schema. La deuxième ligne est un commentaire destiné à la personne qui lit le fichier : le programme l’ignorera.

La troisième ligne commence le script avec le tag « project » requis. Si aucune cible n’est spécifiée sur la ligne de commande, ANT utilisera la cible « help » par défaut. Par ailleurs, le script utilisera le répertoire courant comme base. Nous verrons l’importance de ce détail dans la suite du script.

Suit la liste de toutes les cibles avec les tâches qui seront suivies quand les cibles seront exécutées. Chaque cible a un « nom » que le script peut utiliser pour l’activer. Certaines cibles ont aussi un attribut appelé « depends ». Il signifie que, avant que la cible ne soit exécutée, le script doit d’abord exécuter toutes les cibles spécifiées dans cet attribut. L’attribut peut être imbriqué, c’est-à-dire qu’une cible peut dépendre d’une autre cible, laquelle peut dépendre d’une autre, et ainsi de suite.

Après avoir vu l’ossature d’un script, voyons quelquesunes des cibles. La cible « set-variables » a pour seul rôle de définir une poignée de propriétés qu’utiliseront les autres cibles. Cela n’est activé que quand une autre cible l’appelle explicitement par l’intermédiaire de l’attribut « depends ». Ainsi, la cible « deploy » dépend de « set-variables » parce qu’elle a besoin de savoir où déployer les fichiers. La propriété « deployDir » est définie dans « set-variables ». Par conséquent, « deploy » dépend d’elle.

On le voit, la cible « help » se contente d’envoyer en écho quelques messages à l’écran pour expliquer la manière d’utiliser le script. Il est recommandé de mettre une cible « help » dans chaque script ANT écrit par vous. Tout semble ainsi beaucoup plus clair, particulièrement si l’on a beaucoup de scripts tous nommés build.xml et si l’on ne sait pas très bien ce que fait chaque script.

La cible « backup » utilise la tâche ANT intégrée « jar » pour zipper tous les fichiers dans le répertoire de base et placer le fichier résultant dans le répertoire « backupDir ». A noter que le « basedir » est spécifié comme « . » ; cependant, ce répertoire est relatif au « basedir » spécifié dans le tag « project ».

La cible « build » compile tous les fichiers .java présents dans le « srcdir » (lequel est relatif au « basedir » spécifié dans le tag « project ») et imprime les éventuels avertissements et erreurs vers le fichier de sortie standard.

La cible finale, « deploy », copie tous les fichiers présents dans la « basedir » (en excluant les fichiers .java) dans la « deployDir », qui est spécifiée dans « set-variables ». En principe, les fichiers .java sont exclus des déploiements parce que vous ne voulez pas que le code source de votre précieux travail soit livré aux clients. (Bien sûr, ils pourraient utiliser un décompilateur s’ils étaient assez motivés, mais ce sera l’objet d’un autre article.)

Sachez que les tâches ANT que j’ai utilisées dans cet exemple sont très puissantes et souples, mais j’ai simplement voulu vous donner un aperçu de leur mode de fonctionnement. Il existe beaucoup de tâches ANT utiles : certaines accompagnent l’installation ANT de base et d’autres sont facultatives. Et vous pouvez aussi écrire vos propres tâches pour automatiser des actions auxquelles personne d’autre n’a pensé. Vous trouverez d’autres détails dans la documentation ANT à ant.apache.org.

Téléchargez cette ressource

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010