Langage de commandes Ant. Langage de commandes Ant



Documents pareils
Votre premier projet Android

Introduction à Eclipse

Générer du code à partir d une description de haut niveau

TP1. Outils Java Eléments de correction

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

TP1 : Initiation à Java et Eclipse

bbc Launch Pad Juillet 2011 Version 10.0

Installation et prise en main

Environnements de développement (intégrés)

Java Avancé. Le langage Java. Rémi Forax

Initiation à JAVA et à la programmation objet.

APIs de table pour SQL Server

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

TP1 : Initiation à Java et Eclipse

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

TD/TP 1 Introduction au SDK d Android

Java Licence professionnelle CISII,

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

TME1 Installation et programmation en ILP1

Programmation Mobile Android Master CCI

Bases Java - Eclipse / Netbeans

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Quelques éléments de compilation en C et makefiles

Construire des plug-ins pour SAS Management Console SAS 9.1

A. Architecture du serveur Tomcat 6

as Architecture des Systèmes d Information

TP au menu «UI ANDROID»

Builds et tests Utilisation de CMake et de Dart

BIRT (Business Intelligence and Reporting Tools)

wxwidgets dans un environnement Microsoft Windows

EXA1415 : Annotations

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Remise à niveau d un programme JAVA du domaine public

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

Traitement de données

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Installation et compilation de gnurbs sous Windows

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Apprendre Java et C++ avec NetBeans

4. SERVICES WEB REST 46

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Tutoriel d installation de Hibernate avec Eclipse

Chapitre I Notions de base et outils de travail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Eclipse atelier Java

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

La base de données XML exist. A. Belaïd

Vérifier la qualité de vos applications logicielle de manière continue

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Automatisation de l administration système

SonarQube : une autre vision de votre logiciel

JOnAS Day 5.1. Outils de développements

ACTIVITÉ DE PROGRAMMATION

Programmer en JAVA. par Tama

Le langage C. Séance n 4

Etude de cas : PGE JEE V2

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

1 Modélisation d être mauvais payeur

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Projet Active Object

CalDav Manager : Gestionnaire d emploi du temps

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Les Géodatabases en 9.2

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

WPKG Gestion de paquets pour Windows

Construction de logiciel et packaging

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Installation du package esup-portail Version uportal-2.5.x-esup

Chapitre 10 : Logiciels

Annexe Android Studio

Projet De Stijl Plate-forme pour robots mobiles

ECLIPSE ET PDT (Php development tools)

Séance 0 : Linux + Octave : le compromis idéal

Module d anonymisation

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Java pour le Web. Cours Java - F. Michel

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

INFO-F-404 : Techniques avancées de systèmes d exploitation

INSTALLATION ET CONFIGURATION DE OPENLDAP

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

EJBCA PKI Open Source

Le Client/Serveur avec Enterprise Miner version 4

Ce TP consiste à installer, configurer et tester un serveur DNS sous Linux. Serveur open source : bind9 Distribution : Mandriva

Transcription:

Langage de commandes Ant Langage de commandes Ant Cedric Dumoulin cedric.dumoulin@lifl.fr Cedric Dumoulin ((C)Gautier Koscielny, Jérôme Moroy) ((C)Gautier Koscielny, Jérôme Moroy) Introduction L outil ANT a été développé en complément des outils comme make ou gnumake afin de compiler, packager et configurer sur tous types de plates-formes des applications logicielles programmées en langage Java. «ANT» est l acronyme de Another Neat Tool, clin d oeil aux outils du type YACC. ANT est indépendant de la plate-forme puisque lui-même écrit essentiellement en Java. ANT a été conçu pour automatiser des taches complexes et répétitives. Il devrait donc rapidement devenir votre outil favori pour automatiser vos procédés de fabrication standard de bibliothèques de composants logiciels (une des joies de votre future profession). Installation Vous n avez rien à faire. ANT est déjà installé dans Eclipse. Néanmoins, si vous souhaitez installer ANT et l utiliser en complément d autres outils, vous trouverez la distribution à l URI suivante : http://jakarta.apache.org/ant/index.hml Dans ce cas, une fois la distribution installée, vous devrez, sous Unix, faire pointer le répertoire bin de cette installation dans la variable d environnement PATH. Une variable ANT_HOME pointe sur le répertoire d installation. Petit manuel de ANT Un fichier de commandes ANT se présente comme un Makefile, à la différence près que ce fichier est écrit en XML et que de manière standard, nous appelons build.xml. Un éditeur standard suffit mais Eclipse (toujours lui) vous fournit un environnement intégré de gestion de ANT (codes couleurs, configurateur, lanceur automatique, analyseur, etc.). Pour le moment, vous allez étudier l exemple suivant de fichier build.xml avant de passer aux travaux pratiques. 1/5

<?xml version= 1.0?> <project name= test default= compile basedir=.. > <property name= src.dir value= src /> <property name= classes.dir value= classes /> <target name= init > <mkdir dir=${classes.dir} /> <target name= compile depends= init > <javac srcdir= ${src.dir} destdir= ${classes.dir} /> </project> Décomposons le fichier pas à pas : <?xml version= 1.0?> Puisque les fichiers de construction ANT sont des fichiers XML, le document commence par une declaration XML qui indique quelle version de XML est utilisée afin que l outil puisse déterminer la version automatiquement si cela devient nécessaire. <project name= test default= compile basedir=. > L élément racine du fichier build est l élément project. Il possède trois attributs : name : il s agit du nom du projet, constitué de caractères alphanumériques valides pour XML default : il s agit de la règle à exécuter par défaut quand aucune règle n est fournie en ligne de commande par l utilisateur ou automatiquement par un autre outil. C est le seul attribut obligatoire parmi les trois. basedir : c est le répertoire de base depuis lequel tout chemin relatif est utilisé dans le fichier build.xml. Si l attribut est omis, le répertoire parent du fichier build.xml sera utilisé. <property name= src.dir value= src /> <property name= classes.dir value= classes /> L élément property permet de déclarer des propriétés correspondant à des constantes définies par l utilisateur utilisées et référencées ensuite dans le reste du document. Une propriété est un couple nom/valeur. La valeur du nom et de la valeur sont contraints par les règles de nommage XML (caractères d échappement). La référence à une propriété nom est réalisées en utilisant la construction ${ nom } comme vous le constaterez plus tard dans le document. <target name= init > <mkdir dir=${classes.dir} /> 2/5

L élément target permet d encapsuler une séquence d action. Nous l appellerons règle. Une règle possède un nom que vous pouvez référencer dans d autres règles ou à l extérieur du document, automatiquement ou en ligne de commande. L appel à une règle dans une autre règle est effectuée syntaxiquement par le mot-clé depends. Dans l exemple, la règle s appelle init (pour initiate ou en vieux français initialisation ) et l action provoquée par son appel se limite à la création d un répertoire en utilisant la commande ant mkdir. Vous constatez que le mécanisme des règles défini dans ANT est identique au mécanisme qui régit les dépendances d un fichier Makefile. Finalement, un fichier ANT constitue un graphe acyclique orienté de dépendances de règles. Une règle peut avoir différents attributs : name : le nom de la règle qui permet de la référencer. C est le seul attribut obligatoire. depends : il s agit d une liste de règles séparées par des virgules dont dépend cette règle dépend. Par exemple, la règle compile dépend de init. Autrement dit, les dépendances s exécuteront avant cette règle. Attention à ne pas introduire de cycle dans les dépendances même si ANT les détecte. if : attribut utile qui permet de spécifier une condition sur l exécution de la règle en se basant sur la valeur d une propriété. Par exemple, «if= linux» peut être utilisé pour indiquer que les instructions doivent être exécutées si la propriété linux a été définie et possède n importe quelle valeur. unless : effet inverse du if (la règle s exécute à moins que la valeur de la propriété ait été fixée). description : une description utile de la règle. Une option de ant permet de lister les règles et toutes leurs descriptions (essayer l option --projecthelp). <target name= compile depends= init > <javac srcdir= ${src.dir} destdir= ${classes.dir} /> Comme indiqué précédemment, la règle compile dépend de l exécution de la règle init pour être exécutée. L instruction de la règle consiste à exécuter la commande javac. Les instructions sont toujours définies dans le corps d une règle. Dans le cas présent, l instruction va prendre les fichiers sources dans le répertoire pointé par srcdir et va compiler les classes dans le répertoire cible destdir Vous découvrirez d autres options de cette règle d ici la fin du TP. 3/5

Un projet typique Nous vous suggérons d organiser chacun de vos projets en cinq répertoires : src : c est le répertoire dans lequel vos sources doivent être placées bin : c est le répertoire dans lequels sont placés les fichiers compilés par Eclipse classes : c est le répertoire dans lequel sont placés les fichiers compilés par ant build : c est l endroit où toutes les librairies et autres fichiers construits par ant doivent être placés. etc : c est l endroit fourre-tout où vous allez placer les fichiers de configuration de votre projet, les images, des scripts, etc. ant : c est là que sera le fichier build.xml et d autres fichiers de configuration. src, bin, ant et etc seront créés dans Eclipse à la création du projet. En revanche, le répertoire build sera créé ou effacé par une commande ANT. Travail (facultatif) Dans cette section, nous avons découpé étapes par étapes le travail à réaliser en TP. L utilisation d Eclipse devrait vous simplifier le travail à mettre en œuvre. Pour chaque étape, nous vous demandons d écrire la documentation de votre code et de générer automatiquement la documentation avec la commande javadoc ANT. Classe simple Définissez une classe Java simple qui affiche la date courante dans une console. Compilez et exécutez cette classe à travers des commandes ANT en respectant l architecture de projet indiqué dans la section précédente. La compilation doit permettre de débuguer la classe et de vérifier qu elle n utilise pas des méthodes obsolètes (choisissez les bons paramètres de compilation). Exécuter la commande sous Eclipse et effectuer la même opération en ligne de commande (il faut définir la variable $ANT_HOME). Classe utilisant une ressource externe Créez un répertoire images dans le répertoire etc. Copier une image quelconque dans ce répertoire (gif de préférence). Définissez dans Eclipse un package dessipint.graphics. Définissez une classe Java appartenant au package dessipint.graphics qui affiche une image dans un bouton. (l image sera chargée par un programme principal. L image sera passée sous forme d objet au composant graphique. De cette manière, la construction du bouton ne dépend pas d une image particulière). Créez ensuite une classe principale (sans paquetage) qui va créer ce composant graphique et qui affiche l image contenue dans le répertoire build. La commande ANT doit copier automatiquement l image dans le répertoire build lors de la construction des classes. 4/5

Compilez le composant graphique dans une règle ANT. Compilez la classe principale dans une autre règle et exécutez le programme. Tout doit être réalisé avec des commandes ANT. Importation des propriétés ANT depuis un fichier Définir toutes les propriétés dans le fichier build.xml peut devenir cauchemardesque. De plus, vous vous apercevrez que certaines propriétés sont réutilisables de projets en projets. Déterminez donc un moyen d externaliser les propriétés déclarées dans le fichier build.xml dans un fichier de propriétés que vous créerez dans le répertoire ant. Compilez et exécutez votre programme. Configuration de librairies Conservez les règles précédentes. Dans des projets de développement classique, les classes sont rarement délivrées telles quelles. Elles sont distribuées sous forme de librairies (java archive). Le but de cette dernière étape est double : construire des archives avec ANT ; être capable d y mettre des données et de s y référer dans le code. Vos classes seront maintenant encapsulées dans des librairies. Vous séparerez les classes en deux archives : l une s appelant dessipint-graphics.jar contenant les composants graphiques, l autre contenant le programme principal s appelant tp-main.jar. La ressource image doit être également encapsulée dans la librairie tp-main.jar. La difficulté ici est de pouvoir récupérer dans le code de la classe principale l URI de l image afin de la charger dans le composant graphique. Compilez, packagez l application et exécutez le tout avec des règles ANT. 5/5