
Bien connu des développeurs Java, Ant est un build-system, à l’instar des Makefiles, permettant d’automatiser le déploiement d’un projet. Bon nombre de projets PHP ne sont en effet pas directement utilisables tout de suite après récupération des sources, et/ou nécessitent un certain nombre d’adaptation en fonction du serveur sur lequel le projet est déployé. Voire même, parfois, certaines tâches de maintenances assez rébarbatives pourraient être automatisées.
Je ne connais même pas Ant !
Pour ceux qui ne connaissent pas du tout Ant (et je ne parle pas d’un diminutif d’Antoine…), les rouages tournent concrètement grâce à un fichier XML classiquement nommé « build.xml », comprenant une succession de balises du style :
<target name="NOM_REGLE" depends="REGLES À EFFECTUER AUPARAVANT"> <actions à effectuer ... /> </target>Une fois ce fichier XML dûment rempli, vos règles s’exécutent par le biais d’une ligne de commande, après bien entendu avoir vérifié qu’Ant était bien installé sur votre machine :
> ant NOM_REGLEIl y a un certain nombre d’options disponibles, il est par exemple possible d’afficher les règles disponibles et leur rôle respectif via ant -p pour peu que vous ayez renseigné un champ « description » dans le fichier build.xml.
Bon, et pour mon projet, ça sert à quoi ?
Vous manquez d’imagination ? Voici à titre d’exemple la liste de règles que j’ai définie pour Piwam :
- init: Créer les répertoires manquants (log, cache, build…
- cc: Vider le cache
- doc: Générer la documentation Doxygen
- up: Update SVN
- phpcpd: Cherche le code PHP dupliqué au sein du projet
- pdepend: Génère un rapport de dépendance des classes
- phpcs: Vérifie la conformité du code avec une norme donnée
- lint: Vérifie qu’aucun fichier ne contient une erreur de syntaxe
- test: Lance les tests unitaires et fonctionnels
- css: Concatène l’ensemble des fichiers CSS en un seul grand fichier CSS
- css.min: Minimise la taille du gros fichier CSS. (appelle automatiquement la règle css en amont)
- clear: Nettoie les fichiers générés
- build: Lance l’ensemble des tâches permettant de vérifier la qualité du projet
je vous invite à découvrir le fichier XML correspondant sur le dépôt SVN du projet. Ce fichier vous permet alors d’effectuer toute une batterie d’actions de manière extrêmement simplifiée. Ant est utilisé au sein d’une multitude d’outils du monde Java, des IDE (Eclipse…) aux outils d’intégration (Hudson, CruiseControl…). En pratique, ces outils vont aller lire votre fichier build.xml et appeler les commandes correspondant aux tests (dans mon cas : phpcs, pdepend, etc.) de manière 100% automatisée afin de vous permettre de suivre l’évolution de votre projet au fil des révisions.
Sur ce, je vous laisse rédiger votre propre antfile, en attendant de vous présenter comment l’exploiter au sein d’Hudson dans un projet article !
Liens utiles
- http://ant.apache.org : Site officiel de Ant, par la fondation Apache
- http://phing.info : Alternative à Ant spécialement conçue pour les outils PHP. (Basée sur Ant)
- http://hudson-ci.org : Hudson, outil d’intégration continue

Utilisé en production depuis 2 ans mais présenté seulement aujourd’hui à la communauté, le projet HipHop est d’ores et déjà disponible, n’hésitez pas à 











Abonnement Fil RSS