Ant. Sébastien Jean. IUT de Valence Département Informatique. v2.1, 10 novembre 2008

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

bbc Launch Pad Juillet 2011 Version 10.0

TP1. Outils Java Eléments de correction

Votre premier projet Android

JOnAS Day 5.1. Outils de développements

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

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

Introduction à Eclipse

Tutoriel d installation de Hibernate avec Eclipse

APIs de table pour SQL Server

Java Licence professionnelle CISII,

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

TP1 : Initiation à l algorithmique (1 séance)

TP1 : Initiation à Java et Eclipse

ECLIPSE ET PDT (Php development tools)

Environnements informatiques

Utilisation de Jakarta Tomcat

Vulnérabilités et sécurisation des applications Web

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

Serveurs de noms Protocoles HTTP et FTP

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

Installation et prise en main

Compte Rendu d intégration d application

EJBCA PKI Open Source

Le Modèle de Sécurité dans JAVA

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

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

as Architecture des Systèmes d Information

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

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

Le Client/Serveur avec Enterprise Miner version 4

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Correspondances Windows-Linux

Annexe 10 - Procédure pour créer un Jar

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

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

Les architectures 3-tiers Partie I : les applications WEB

Traitement de données

BOUCHARD Nicolas. GENTILE Pierre

Programmation Web. Madalina Croitoru IUT Montpellier

Chapitre I Notions de base et outils de travail

Programmeur Java 1.4 et 5.0

TP1 : Initiation à Java et Eclipse

Web Tier : déploiement de servlets

PROCEDURE D'INSTALLATION OPENREPORTS

Les services usuels de l Internet

Initiation à JAVA et à la programmation objet.

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

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Open Source Job Scheduler. Installation(s)

Serveur Subversion Debian GNU/Linux

4. SERVICES WEB REST 46

Un serveur web léger et ouvert

CONFIGURATION DE LA LIBRAIRIE WEBUTIL (10g) Oracle Forms 10g

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII,

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Bases Java - Eclipse / Netbeans

Intégration de l interface graphique de Ptidej dans Eclipse

Fichiers d'archives java - *.jar

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

Java pour le Web. Cours Java - F. Michel

TD/TP 1 Introduction au SDK d Android

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Serveur d Applications Web : WebObjects

Automatisation de l administration système

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

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

BIRT (Business Intelligence and Reporting Tools)

Remise à niveau d un programme JAVA du domaine public

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

L3 informatique TP n o 2 : Les applications réseau

A. Architecture du serveur Tomcat 6

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

Programmation Internet Cours 4

Remote Method Invocation (RMI)

Petit guide pour l installation de CVW sous Linux

Réaliser un inventaire Documentation utilisateur

Eclipse atelier Java

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

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

arcopole Studio Version 3.3

Module d anonymisation

WPKG Gestion de paquets pour Windows

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

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

TP 1. Prise en main du langage Python

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

Procédure d installation d AMESim 4.3.0

INSTALLATION ET CONFIGURATION DE OPENLDAP

Machine virtuelle Java pour Palm TX

Java Licence Professionnelle CISII,

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.

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

Transcription:

Ant Sébastien Jean IUT de Valence Département Informatique v2.1, 10 novembre 2008

Qu est ce que ANT? Principes et installation Introduction Outil open-source du consortium Apache http ://ant.apache.org Version 1.1, juillet 2000 Version 1.7.0, décembre 2006 Make-like = gestion de production de logiciel Syntaxe basée sur XML (MAKEFILE = build.xml) Expression de cibles (de production) et de dépendances Ecrit en Java, interfaçable depuis Java Extensible, par définition de nouvelles tâches (écrites en Java) Intégré à la majorité des IDE, notamment Eclipse Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 1 / 33

Installation de ANT Principes et installation Installation Téléchargement de la distribution binaire actuelle (1.7.0) : apache-ant-1.7.0-bin.zip Décompression Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 2 / 33

Principes et installation Installation de ANT (fin) Installation Positionnement de variables d environnement Test! Déclaration de ANT_HOME, pointant sur l installation de Ant Déclaration de JAVA_HOME, pointant sur l installation du JDK/JRE Ajout de ANT_HOME/bin dans la variable d environnement PATH Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 3 / 33

Premier script Ant Principes et installation Projets, cibles, tâches Projet = Gestion de la production logicielle pour un cas particulier Cible = Opération de production (compilation, exécution,... ) Tâche = sous-opération élémentaire d une cible (appel au compilateur, affichage de message,... ) <?xml version="1.0" encoding="iso-8859-1"?> <project name="test"> <target name="echo1"> Projet Cible <echo message="test1 ant!" /> Tâche </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 4 / 33

Principes et installation Premier script Ant (suite) Projets, cibles, tâches Exécution Depuis le répertoire contenant le fichier build.xml Syntaxe : ant cible Depuis n importe où Syntaxe : ant -d cheminfichier cible Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 5 / 33

Principes et installation Premier script Ant (fin) Projets, cibles, tâches Possibilité de définir une cible par défaut <?xml version="1.0" encoding="iso-8859-1"?> <project name="test" default="echo1"> <target name="echo1">... </target> <target name="echo2">... </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 6 / 33

Ant et Java Compilation Compilation d une application Java Fichiers sources dans un sous-répertoire src du répertoire courant Une classe A, dans le paquetage fr.iutvalence.ant Une application TestA (utilisant A), dans le paquetage par défaut Première version du script Ant (dans le répertoire courant) <property /> : définition de propriété (variable d environnement locale au script), rappelée par ${...} basedir : propriété (modifiée via attribut éponyme du projet) indiquant le répertoire de base du projet <?xml version="1.0" encoding="iso-8859-1"?> <project name="monapp" default="compile" basedir = "."> <property name="src" value="src" /> <target name="compile"> <javac srcdir="${src}" destdir="${basedir}" </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 7 / 33

Ant et Java Compilation Compilation d une application Java (suite) Tâche javac : compilation Java (avec détection de modification) Attribut srcdir : arborescence contenant les fichiers.java à compiler Attribut destdir : répertoire où produire les fichiers.class Premier appel : les fichiers sont compilés Second appel : les fichiers ne sont pas recompilés (la tâche réussit) Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 8 / 33

Ant et Java Compilation Compilation d une application Java (suite) Version 2 : production des.class dans un sous-répertoire build <?xml version="1.0" encoding="iso-8859-1"?> <project name="monapp" default="compile" basedir = "."> <property name="src" value="src" /> <property name="build" value="build" /> <target name="compile"> <javac srcdir="${src}" destdir="${build}" </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 9 / 33

Ant et Java Compilation Compilation d une application Java (suite) Problème : le répertoire build n existe pas! Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 10 / 33

Ant et Java Compilation Compilation d une application Java (suite) Solution : 1 Définition d une cible init pour la création du répertoire build Utilisation de la tâche prédéfinie mkdir 2 Expression de dépendance entre les cibles compile et init <?xml version="1.0" encoding="iso-8859-1"?> <project name="monapp" default="compile" basedir = "."> <property name="src" value="src" /> <property name="build" value="build" /> <target name="init"> <echo message="output directory creation"/> <mkdir dir="${build}"/> </target> <target name="compile" depends="init"> <echo message="compilation"/> <javac srcdir="${src}" destdir="${build}" /> </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 11 / 33

Ant et Java Compilation Compilation d une application Java (fin) Attribut depends : dépendance vis-à-vis d une ou plusieurs cibles Exécution d une cible exécution préalable séquentielle de toutes les cibles dont elle dépend Syntaxe : <target... depends="nom1, nom2,... " >... Premier appel de compile : exécution de init création de build Second appel de compile : exécution de init sans effet Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 12 / 33

Ant et Java Exécution Exécution d une application Java Tâche java : exécution d une application Java Attribut classname : nom de la classe à exécuter Attribut classpath : classpath à utiliser (suite de chemins) <?xml version="1.0" encoding="iso-8859-1"?> <project name="monapp" default="compile" basedir = "."> <property name="src" value="src" /> <property name="build" value="build" /> <target name="init">... </target> <target name="compile" depends="init">... </target> <target name="run" depends="compile"> <echo message="execution..." /> <java classname="testa" classpath="${build}" /> </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 13 / 33

Ant et Java Exécution Exécution d une application Java (fin) Application TestA Affichage de A! puis arrêt Exécution de run = init compile run Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 14 / 33

L élément project Constructions du langage Project, Target Attributs : name : nom du projet Requis, valeur par défaut : néant default : nom de la cible par défaut Optionnel, valeur par défaut : nom de la première cible du fichier basedir : répertoire de référence du projet Optionnel, valeur par défaut : Répertoire contenant build.xml Exemple d utilisation : <project name="pipo" default="plop"> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 15 / 33

L élément target Constructions du langage Project, Target Attributs : name : nom de la cible Optionnel, valeur par défaut : néant depends : dépendances (séparées par, ) Optionnel, valeur par défaut : néant if : exécution subordonnée à l existence d une propriété Optionnel, valeur par défaut : néant unless : exécution subordonnée à l absence d une propriété Optionnel, valeur par défaut : néant description : description en langage naturel Optionnel, valeur par défaut : néant Exemple d utilisation : <target name="run" depends="compile" if="runnable"> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 16 / 33

L élément property Constructions du langage Propriétés et références Propriété = association d un nom et d une valeur Noms sensibles à la casse, valeurs non modifiables Quatre façons de définir une propriété via <property> 1 Via un couple {nom ; valeur} 2 Via un couple {nom ; référence} 3 Via un fichier de propriétés Localisé via les attributs file, resource ou url 4 Via une variable d environnement Spécifiée via l attribut environment Voir aussi : <propertyset>, gestion d ensemble de propriétés Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 17 / 33

Propriétés prédéfinies Constructions du langage Propriétés et références Disponibles dans tout script Ant Deux catégories : Propriétés héritées de l environnement Java (cf. docs JDK) java.version, java.home, java.class.path, java.ext.dirs,... os.name, os.version,... file.separator, path.separator, line.separator user.name, user.home, user.dir Propriétés spécifiques à Ant basedir : répertoire de référence du projet ant.file : chemin absolu du script ant.version, ant.java.version, ant.project.name Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 18 / 33

Références Constructions du langage Propriétés et références Association d un identifiant, via l utilisation de l attribut id, à n importe quel élément du projet Rappel via l utilisation de l attribut refid de certaines tâches <project... > <path id="project.class.path"> <pathelement location="lib/"/> <pathelement path="${java.class.path}/"/> <pathelement path="${additional.path}"/> </path> <target... > <rmic...> <classpath refid="project.class.path"/> </rmic> </target> </project> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 19 / 33

Constructions du langage Eléments <path> et <classpath> Chemins et arguments Alternative à la définition via attributs éponymes Intérêt : factorisation par référence Ajout de chemins via sous-éléments : <pathelement> Attribut path : liste de chemins séparés par : ou ; Attribut location : fichier/répertoire (chemin relatif / basedir) <fileset> <filelist> <dirset> <path> (pour <path> uniquement) + attribut refid Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 20 / 33

Elément <arg> Constructions du langage Chemins et arguments Spécification d arguments de ligne de commande Trois types d arguments Chemin de localisation de fichier/répertoire Spécification via attribut file Liste de chemins de localisation de fichier/répertoire Spécification via attributs path ou pathref Autres arguments Exemples : Spécification via attribut value : un seul argument (avec/sans espace) Spécification via attribut line : plusieurs arguments séparés par espace <arg path="/a ;b ;c/d" />, <arg line="-pipo -plop" /> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 21 / 33

Constructions du langage Elément <patternset> Sélection de ressources Regroupement de fichiers/répertoires correspondant à des modèles Chemins relatifs par rapport au répertoire de base d une tâche <patternset id="monpattern"> <include name="**/*.java"/> <exclude name="**/*test*"/> </patternset> Sous-éléments <include> et <exclude> Ajout de fichiers/répertoires par inclusion/exclusion Attribut name : expression de modèle * : n importe quelle suite de caractères (evt. vide)? : n importe quel caractère ** (spécial) : n importe quel niveau d une arborescence Attributs if et unless : inclusion/exclusion conditionnelle Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 22 / 33

Elément <filelist> Constructions du langage Sélection de ressources Construction de listes de fichiers Attribut dir (requis) : répertoire de base pour la sélection Ajout de fichiers dans la liste via sous-éléments <file> Attribut name (requis) : nom du fichier (modèle interdit) <filelist id="javafiles" dir="${src}"> <file name="testa.java"/> <file name="fr/iutvalence/ant/a.java"/> </filelist> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 23 / 33

Constructions du langage Sélection de ressources Eléments <fileset> et <dirset> Construction de listes de fichiers ou de répertoires, via des modèles Attribut dir (requis) : répertoire de base pour la sélection Attribut casesensitive (optionnel) Modèles sensibles à la casse (ou non) Attribut followsymlinks (optionnel) Suivi (ou non) des liens symboliques Ajout de fichiers via sous-éléments <patternset> Possibilité d utiliser directement <include>/<exclude> <fileset dir="${src}" casesensitive="yes"> <patternset id="sources"> <include name="**/*.java"/> <exclude name="**/*test*"/> </patternset> </fileset> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 24 / 33

Sélecteurs Constructions du langage Sélection de ressources Modèles complexes utilisables dans un élément fileset Pas uniquement basés sur la syntaxe du nom du fichier Deux types de sélecteurs : Sélecteurs de base = modèles Sélecteurs conteneurs = compositions de modèles Elément <selector> Définition de sélecteur à l extérieur de <fileset> pour utilisation par référence Attributs id, if et unless Un seul sous-élément sélecteur <selector>, sélecteur de base, sélecteur conteneur Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 25 / 33

Sélecteurs de base Constructions du langage Sélection de ressources <contains> <date> Sélection si occurrence d une chaîne de caractères dans le contenu Sélection si antérieur ou postérieur à une date donnée <depend> <depth> Sélection si plus récent qu un fichier équivalent ailleurs Sélection si localisation à une profondeur donnée de l arborescence <different> Sélection si contenu différent d un fichier équivalent ailleurs <filename> Sélection si correspondant à un modèle de nom donné Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 26 / 33

Sélecteurs de base Constructions du langage Sélection de ressources <present> Sélection si fichier équivalent existe ou non ailleurs <containsregexp> <size> <type> Sélection si occurrence d une expression régulière dans le contenu Sélection si taille inférieure ou supérieure à une taille donnée Sélection si fichier ou répertoire <modified> Sélection si modification (algorithme de détection configurable) Voir aussi : <signedselector> et <scriptselector> Possibilité d écrire ses propres sélecteurs, en Java Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 27 / 33

Sélecteurs conteneurs Constructions du langage Sélection de ressources <and> Sélection si sélectionné par tous les sélecteurs encapsulés <majority> <none> <or> <not> Sélection si sélectionné par la majorité des sélecteurs encapsulés Sélection si sélectionné par aucun des sélecteurs encapsulés Sélection si sélectionné par au moins un des sélecteurs encapsulés Sélection si non sélectionné par le sélecteur encapsulé (unique) <selector> Sélection si sélectionné par le sélecteur encapsulé (unique) Attributs if et unless pour exécution conditionnelle Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 28 / 33

Tâches conteneurs Tâches Ant Parallélisme de tâches Contrôle du parallélisme d exécution d un ensemble de tâches Elément <sequential> Exécution séquentielle de l ensemble de tâches encapsulées Elément <parallel> Exécution parallèle de l ensemble de tâches encapsulées Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 29 / 33

Gestion de fichiers Tâches Ant Tâches prédéfinies <copy> Copie de fichiers et répertoires <copy todir="../dest/dir"> <fileset dir="src_dir"> <exclude name="**/*.java"/> </fileset> </copy> Voir aussi : <delete>, <move>, <attrib>, <touch>, <mkdir>, <get> <sync>, <chgrp>, <chmod>, <chown>, <patch>, <concat>, <zip>... Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 30 / 33

Java Tâches Ant Tâches prédéfinies <javac> <java> Compilation de codes sources Java Exécution d application Java (ou de jar exécutable) <javadoc> <jar> Production de documentation Création d archive jar <jar destfile="testant.jar" basedir="."> <include name="build"/> <manifest> <attribute name="main-class" value="testa"/> </manifest> </jar> Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 31 / 33

Autres tâches optionnelles Tâches Ant Tâches prédéfinies <ftp> Transferts de fichiers via FTP <sshexec> <scp> Exécution d une commande sur un ordinateur distant via SSH Copie de fichiers à distance sécurisée via SSH <telnet> <image> Etablissement et gestion d une session TELNET Manipulation d images (redimensionnement,... ) <splash> Affichage d un «splash screen» Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 32 / 33

Tâches Ant Tâches prédéfinies Fin! Sébastien Jean (IUT Valence) Ant v2.1, 10 novembre 2008 33 / 33