Eclipse Vidéo Séries : 1er tutoriel

Utilisation d'Ant sous Eclipse : comment compiler vos projets avec Ant et le compilateur d'Eclipse

Nicolas Barlatier

Ce cours est plutôt destiné aux programmeurs de niveau intermédiaire. Les débutants peuvent également suivre ce cours, mais il leur est toutefois nécessaire d'avoir un minimum de connaissances d'Eclipse et d'Ant : les références présentes en bas de page permettent de débuter et d'appréhender la théorie, afin de pouvoir ensuite suivre cet exemple concret pas à pas.

- Titre : Eclipse Vidéo Séries : 1er tutoriel

- Auteur : Nicolas Barlatier

- Parution : 4 avril 2010

- Mise à jour : 22 mars 2020

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2013 Nicolas Barlatier. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- I-A. Présentation d'Eclipse et d'Ant

- I-B. Ant Primer

- II. Utilisation d'Ant sous Eclipse pour compiler vos projets en Action !

- III. Conclusion

- IV. Références

I - Introduction

I-A - Présentation d'Eclipse et d'Ant

Je vais vous présenter rapidement comment utiliser l'outil Ant dans Eclipse lors de vos développements, ainsi que l'intérêt que présente cette utilisation.

Tout d'abord l'Environnement de Développement Intégré (EDI, plus communément appelé IDE, qui correspond à l'acronyme anglophone) Eclipse : c'est un IDE libre universel et polyvalent permettant de développer n'importe quel type d'application à partir de n'importe quel langage de programmation pris en charge (Java, C++, PHP etc.). Nous allons nous concentrer sur le langage pris en charge par défaut : Java. Il faut savoir que l'IDE Eclipse a une architecture basée sur la notion de plugin. Or il existe un plugin intégré pour un outil plus qu'intéressant, il s'agit du plugin utilisé pour Ant.

Ant est en réalité un acronyme de Another Neat Tool (un autre outil astucieux ou cool). Ant est un couteau suisse permettant d'effectuer énormément de tâches automatiquement lors de vos développements.
Ant un projet d'Apache Software Foundation est un outil permettant d'automatiser des tâches lourdes et répétitives. Il représente l'équivalent en Java de l'outil make d'UNIX.

Les tâches les plus courantes sont la compilation, la génération de fichiers, de rapports, l'exécution d'outils tiers externes, l'archivage (sous le format JAR, WAR ou EAR), le lancement des tests, les déploiements.

La configuration d'Ant se fait grâce à un fichier basé sur le XML et qui, en général, est nommé « build.xml ». Un outil tel que Ant permet de servir de base de stabilité. Cela permet à un développeur de n'oublier aucune tâche alors que le projet évolue et change constamment.

Le but de ce tutoriel est de vous donner les bases permettant de mieux maîtriser Ant sous l'IDE Eclipse. Il est tout à fait possible de construire le fichier de configuration build.xml d'Ant manuellement. Mais nous allons voir comment Eclipse permet de nous aider en générant automatiquement ce fichier à partir de votre ou vos projet(s).

L'environnement qui a été utilisé pour réaliser ce tutoriel est le suivant :

- Eclipse Europa version 3.3.2 ;

- Ant version 1.7.0 (intégré dans Eclipse).

Notons cependant que ce tutoriel fonctionne avec les versions ultérieures d'Eclipse (j'ai fait des tests).

I-B - Ant Primer

Je vais vous donner un rappel du fonctionnement global d'Ant. Ant utilise des fichiers build XML qui décrivent comment générer le projet.

À chaque projet donné est associé un fichier build.xml.

Dans ce fichier build se trouve une liste des différentes cibles (target) à votre disposition. Ces cibles peuvent participer directement ou indirectement au processus de génération de votre projet. Une cible peut être constituée de plusieurs actions (tasks) permettant d'atteindre le but de la cible. On peut comparer une cible avec une méthode, et une tâche (task) à une instruction.

De plus le processus de génération d'un projet peut être effectué à l'aide de plusieurs cibles qui sont dépendantes les unes des autres. En effet des cibles peuvent dépendre d'autres cibles. C'est-à-dire qu'une cible attend le résultat d'une autre avant de pouvoir effectuer ses opérations.

Une cible est constituée de plusieurs actions (tasks). Lorsque cette cible est exécutée par Ant à un stade de la génération du projet, l'ensemble de ses actions sera exécuté.

Une tâche (task) est transformée en une action par le moteur d'exécution d'Ant (une classe Java est dissimulée derrière toute tâche).

Il est possible d'étendre Ant avec de nouvelles tâches (nouvelles classes Java héritant de la classe abstraite Task d'Ant)

Pour résumer, un fichier build.xml contient une seule balise xml « project » qui décrit le projet concerné. Cette balise peut contenir une cible qui sera lancée par défaut. À l'intérieur de cette balise « project » se trouve une liste de plusieurs balises « target » (cible) qui peuvent être dépendantes entre elles ou non. Enfin dans chaque balise « target » se trouve une liste de balises qui représentent des tâches (« task ») qui seront les opérations effectuées par une cible donnée.

Un schéma s'avérera peut-être plus parlant :

Mais si vous êtes un véritable développeur, vous souhaitez très certainement voir un exemple concret. Je vous comprends, voici un exemple on ne peut plus simple de build.xml qui ne servira à rien à part à vous montrer les concepts concrètement.
Ce build va simplement afficher la version d'Ant intégrée dans votre Eclipse et qui est utilisée dans ce tutoriel :

Fichier exemple build.xml affichant la version d'Ant utilisée

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="AfficherVersionAnt" name="MonProjet">
<target name="AfficherVersionAnt">
<echo message="Version d'Ant utilisée: ${ant.version}"/>
</target>
</project>

Cliquez sur le fichier build.xml avec le bouton droit, automatiquement Eclipse vous proposera l'option « Ant Build » dans le menu « Run As ». En effet dans la configuration Preference/Ant vous verrez que build.xml fait partie de la liste des fichiers pouvant être exécutés avec l'option « Run As > Ant Build » Vous pouvez évidemment rajouter de nouveaux noms de fichiers XML dans cette liste. Les noms seraient séparés par une virgule. Généralement il vaut mieux garder la convention « build.xml ».

Comme vous pouvez le voir, ce fichier contient une seule balise project qui contient une cible constituée d'une seule tâche (echo). Une variable spéciale a été utilisée pour obtenir la version d'Ant.

Le résultat obtenu après exécution est le suivant :

Il se peut que la version d'Ant soit légèrement différente. C'est normal, car j'ai utilisé un Eclipse plus récent pour les tests de ce tutoriel.

Nous allons à présent voir comment à partir d'Eclipse, un fichier complet de génération de votre ou vos projet(s) peut être obtenu et le tout automatiquement. À partir de ce fichier, nous allons voir comment lancer la compilation :

- soit à partir du compilateur du JDK ;

- soit à partir du compilateur fourni avec Eclipse.

Le tout vous sera montré en vidéo pas à pas !

II - Utilisation d'Ant sous Eclipse pour compiler vos projets en Action !

Saviez-vous que l'IDE Eclipse possède un compilateur Java interne différent du compilateur « javac » du JDK que vous connaissez bien ? Cette vidéo va vous le prouver en montrant une différence subtile de comportement de compilation entre :

- le compilateur JDK javac ;

- le compilateur interne d'Eclipse.

Pour montrer la différence entre le compilateur du JDK (javac) et celui d'Eclipse (JDT compiler), je vais déclarer une variable d'instance que je ne vais jamais utiliser, le compilateur du JDK ne signalera pas par défaut cet avertissement (variable déclarée, mais jamais utilisée). Par contre le compilateur JDT d'Eclipse le signalera lors de la compilation. Vous pouvez d'ailleurs voir cet avertissement même avant la compilation, directement dans votre code grâce à l'éditeur (signalé en jaune sur la ligne concernée).

Animation en format "flash" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://barlatier.developpez.com/eclipse/tutorial/ant/ant.swf

Vous avez vu grâce à cette vidéo comment Eclipse vous aide à générer votre fichier build.xml à partir de votre projet. De plus, parmi les cibles à votre disposition, vous pouvez compiler soit avec le compilateur javac du JDK, soit avec le compilateur interne d'Eclipse. Cet assistant est puissant et vous permet de compiler facilement l'ensemble de votre projet grâce à Ant. Il est bon d'examiner en détail le fichier généré. Pour cela il vous faudra une bonne connaissance d'Ant. Par contre si vous le modifiez manuellement, il faut faire attention si vous relancez l'assistant, car il écrasera vos changements !

III - Conclusion

Grâce à ce tutoriel, vous savez maintenant comment générer un fichier build.xml complet à partir de votre ou vos projet(s). De plus, vous savez également comment lancer vos scripts sous Ant dans Eclipse, ainsi que gérer et configurer le lancement des cibles.

Pour de plus amples informations sur Ant vous pouvez vous référer aux liens ci-dessous.

Le but de cet article était de vous fournir un exemple concret en vidéo de l'utilisation d'Ant sous Eclipse. Car j'estime que malheureusement trop peu de documentation pratique existe sur l'utilisation d'Eclipse ou d'un autre IDE. Il existe énormément de documentations techniques, mais restant trop théoriques, par exemple sur l'utilisation générale d'Ant, mais très peu de documentation sur des cas concrets d'utilisation d'Ant et d'Eclipse au sein d'un projet. Mon but est de pallier ce manque en vous proposant dès aujourd'hui des vidéos sur Eclipse. Je vous proposerai de nouvelles vidéos par la suite. Des sujets généraux et plus pointus (Hibernate, Spring, JSP/JSTL, JSF, Spring MVC, JFace, Struts) seront abordés, le tout en vidéo !

Tout commentaire est le bienvenu ! Si vous remarquez une erreur de ma part, n'hésitez pas à me le dire par e-mail nicolasbarlatier@yahoo.fr. De même que toute amélioration de l'article ou du code utilisé est la bienvenue. Toute modification entraînera une nouvelle version de l'article comme nous le faisons dans nos applications :-)

Je remercie keulkeul, Ricky81, djo.mos, et Baptiste Wicht pour leur aide précieuse pour mes premiers pas. De plus je remercie _Max_ pour la relecture orthographique.

IV - Références

Une courte introduction à Apache Ant

Prise en main d'Eclipse Ganymede

Eclipse Ant basics