Ant === Présentation ------------ Ant est un projet open source de la fondation Apache écrit en Java qui vise le développement d'un logiciel d'automatisation des opérations répétitives tout au long du cycle de développement logiciel. Ant pourrait être comparé au célèbre outil make sous Unix. Il a été développé pour fournir un outil de construction indépendant de toute plate-forme. Ceci est particulièrement utile pour des projets développés sur et pour plusieurs systèmes ou pour migrer des projets d'un système vers un autre. Il est aussi très efficace pour de petits développements. Ant repose sur un fichier de configuration XML qui décrit les différentes tâches qui devront être exécutées par l'outil. Ant fournit un certain nombre de tâches courantes qui sont codées sous forme de classes Java. Ces tâches sont donc indépendantes du système sur lequel elles seront exécutées. De plus, il est possible d'ajouter ces propres tâches en écrivant de nouvelles classes Java respectant certaines spécifications. Installation ------------ .. code-block:: bash wget http://apache.mirrors.ovh.net/ftp.apache.org/dist//ant/binaries/apache-ant-1.9.4-bin.zip unzip apache-ant-1.9.4-bin.zip mv apache-ant-1.9.4 /opt ln -s /opt/apache-ant-1.9.4 /opt/ant Il est possible d'ajouter dans son .bashrc .. code-block:: bash alias ant="/opt/apache-ant-1.9.4/bin/ant" et pour windows dans son alias.bat par exemple .. code-block:: bash @doskey ant=C:\java\apache-ant-1.9.4\bin\ant $* Utilisation ----------- Toutes l'utilisation de ant est réglé par la création d'un fichier xml contenant les tâches à réaliser. Les tâches classiques qu'on peut réaliser: - gestion de fichier (création, suppression, déplacement) - gestion de répertoire (création, suppression, déplacement) - compilation de code - transfert - message hello world! ************ notre fichier xml **build.xml** .. code-block:: xml Il suffit maintenant de lancer ant .. code-block:: bash ant et nous avons pour résultat .. code-block:: bash Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_31\lib\tools.jar Buildfile: C:\Users\faoustin\Downloads\build.xml task_hello: [echo] hello world! BUILD SUCCESSFUL Total time: 0 seconds Basique ******* Il est possible de passer des arguments lors de l'appel .. code-block:: xml appel de ant .. code-block:: bash ant -Dmsg=coucou task_msg .. note:: il est possible de passer le target à lancer dans ant et le resultat .. code-block:: bash Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_31\lib\tools.jar Buildfile: C:\Users\faoustin\Downloads\build.xml task_msg: [echo] mon message: coucou BUILD SUCCESSFUL Total time: 0 seconds Il est possible de rajouter une balise input pour demander à l'utilisateur le message qu'il souhaite voir .. code-block:: xml et voilà son utilisation .. code-block:: bash Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_31\lib\tools.jar Buildfile: C:\Users\faoustin\Downloads\build.xml task_msg: [input] tapez votre message: [coucou] tutu et toto sont sur un bateau [echo] mon message: tutu et toto sont sur un bateau BUILD SUCCESSFUL Total time: 7 seconds Il est possible dans echo de rajouter une information de niveau de log avec l'attribut level qui peut avoir comme valeur: * error * warning * info * verbose * debug Les paramètres de la commande ant indiquant le niveau de log souhaité - -debug - -verbose - -quiet Ssh *** exemple de build.xml permettant de lancer des commandes sur un serveur distant .. code-block:: xml .. note:: sshexec nécessite la librairie **jsch** qu 'il faut télécharger sur le net .. code-block:: bash wget http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.51/jsch-0.1.51.jar/download mv download /opt/ant/lib .. warning:: l'utilisation de l'attribut **trust** permet de se connecter sur le serveur sans vérifier que le serveur est inscrit dans $home/.ssh/know_hosts cela est une faille de sécurité Sql *** Il est possible de lancer une commande sql ou un fichier sql via une tâche ant .. code-block:: xml INSERT INTO TABLETEST(ID,LIB) VALUES (1,'tutu'); .. note:: on peut utiliser l'attribut src, la balise transaction pour utiliser un ou plusieurs fichiers sql .. warning:: il faut trouver dans le classpath ou dans le dossier lib de ant la librairie jar du driver jdbc Git *** Il n'existe pas de fonction git native dans ant, mais on peut les définir .. code-block:: xml l'utilisation est alors simple, pour un clone .. code-block:: xml pour un pull .. code-block:: xml Un projet Java ************** On souhait avoir un fichier build.xml qui puisse - compiler du code java - générer un jar - lancer le jar notre projet est constitué ainsi :: projet |__ bin |__ src |__ org |__ sdf |__ HelloWorld.java Le fichier HelloWorld.java est ainsi .. code-block:: java package org.sdf; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } le build.xml .. code-block:: xml http://skebir.developpez.com/tutoriels/java/ant/ ant et git http://tlrobinson.net/blog/2008/11/ant-tasks-for-git/