ANT et FlashDevelop (et bonus)

Je travaille actuellement sur un projet en Flash où plusieurs sous-projets compilés, dépendants d’un tronc commun, sont intégrés à l’appli finale. Je me suis adapté au pipe-line en place en passant sous FlashDevelop, que je n’avais pas utilisé depuis un moment. Belle évolution, très sympathique outil aujourd’hui.
Mais il me manquait ANT. ANT, c’est trop bien. Une fois que tu as joué avec la fourmie, difficile de s’en passer sur ce genre de développement, avec des compilations à tout va, des dépendances, … J’ai donc tatonné un peu pour intégrer le tout. La communauté semble efficace et les ressources nombreuses, je m’en tiens à un simple rassemblement d’infos et quelques ajouts maison fait en route. Recette cuite sous Windows 7 pro.
Ingrédients:
Action:
-
Installer le JDK
-
Décompresser ANT, placer le répertoire du programme où on le souhaite (pas d’install, déjà prêt)
-
Paramétrer les variables d’environnement (clic droit sur Ordinateur > Propriétés, lien “Paramètres système avancé” à gauche, bouton “Variables d’environnement” en bas, puis on bosse sur “Variables système”):
-
Editer la variable “Path” en y ajoutant le chemin vers le répertoire “bin” d’ANT (ex: ajout de “;C:\Program Files\ANT\bin”)
-
Créer ANT_HOME, qui pointe sur le répertoire ANT
-
A priori, créer JAVA_HOME, qui pointe sur le répertoire du JDK
-
ANT utilisera aussi CLASSPATH, qui doit a priori être vide ou inexistante
-
-
Tester ANT : ouvrir une invite de commande (cmd.exe), taper “ant” et Entrée, on doit obtenir “Buildfile: build.xml does not exist! Build failed”
-
En cas de souci sur l’installation de ANT, voir http://ant.apache.org/manual/index.html
-
-
Installer FlashDevelop
-
Lancer FlashDevelop
-
Copier C:\Program Files (x86)\FlashDevelop\Settings\ToolBar.xml
-
Dans FlashDevelop, Tools > Application Files, aller dans le répertoire Settings et coller ToolBar.xml
-
Editer ce dernier ToolBar.xml : avant </toolbar>, placer le code suivant (ayez de préférence le dernier FlashDevelop – 3.2 à ce jour – pour être sûr du fonctionnement)
<separator />
<button label=”ANT Build” click=”RunProcessCaptured” image=”486″ tag=”c:\windows\system32\cmd.exe;/c $(Quote)cd $(ProjectDir)&&ant$(Quote)” />
-
Dans FlashDevelop, File > Restart, une icône a du apparaître dans la barre d’outils pour vous permettre de lancer le build ANT
Hop. Intégration faite!
Pour l’usage, vous aurez besoin du fichier build.xml, au moins. Voici un exemple:
<?xml version=”1.0″ encoding=”utf-8″ ?>
<project name=”MyProject” default=”CompileAndTestApp” basedir=”.”>
<description>Build MyProject</description>
<property name=”fdbuild” location=”C:\Program Files (x86)\FlashDevelop\Tools\fdbuild\fdbuild.exe”/>
<property name=”compiler” location=”D:\Programs\flex”/>
<property name=”library” location=”C:\Program Files (x86)\FlashDevelop\Library”/>
<property name=”flashviewer” location=”C:\Program Files (x86)\Adobe\Adobe Flash CS5\Players\Debug\FlashPlayerDebugger.exe”/>
<property name=”appswf” location=”${basedir}\bin\MyProject.swf”/>
<property name=”mylittleproject1″ location=”${basedir}\external_content\MyLittleProject1\MyLittleProject1.as3proj”/>
<property name=”mylittleproject2″ location=”${basedir}\external_content\MyLittleProject2\MyLittleProject2.as3proj”/>
<property name=”myproject” location=”${basedir}\MyProject.as3proj”/>
<target name=”MyLittleProject1″>
<echo message=”Compiling ${mylittleproject1}.”/>
<exec executable=”${fdbuild}” failonerror=”true”>
<arg value=”${mylittleproject1}”/>
<arg value=”-compiler”/>
<arg value=”${compiler}”/>
<arg value=”-library”/>
<arg value=”${library}”/>
</exec>
</target>
<target name=”MyLittleProject2″>
<echo message=”Compiling ${mylittleproject2}.”/>
<exec executable=”${fdbuild}” failonerror=”true”>
<arg value=”${mylittleproject2}”/>
<arg value=”-compiler”/>
<arg value=”${compiler}”/>
<arg value=”-library”/>
<arg value=”${library}”/>
</exec>
</target>
<target name=”MyProject”>
<echo message=”Compiling ${myproject}.”/>
<exec executable=”${fdbuild}” failonerror=”true”>
<arg value=”${myproject}”/>
<arg value=”-compiler”/>
<arg value=”${compiler}”/>
<arg value=”-library”/>
<arg value=”${library}”/>
</exec>
</target>
<target name=”compile” depends=”MyLittleProject1, MyLittleProject2, MyProject”>
<echo message=”Compiling ${myproject}.”/>
<exec executable=”${fdbuild}” failonerror=”true”>
<arg value=”${myproject}”/>
<arg value=”-compiler”/>
<arg value=”${compiler}”/>
<arg value=”-library”/>
<arg value=”${library}”/>
</exec>
</target>
<target name=”CompileAndTestApp”>
<antcall target=”compile” />
<antcall target=”TestApp” />
</target>
<target name=”TestApp”>
<exec executable=”${flashviewer}” failonerror=”true”>
<arg value=”${appswf}”/>
</exec>
</target>
</project>
Je n’en détaillerai pas l’usage ici, se référer au manuel de ANT pour plus de détail sur le fonctionnement d’un build.xml.
Un clic sur l’icône ajouté à la barre d’outils de FlashDevelop lancera donc cette procédure, et vous fournira la sortie dans le panneau FlashDevelop Output.
Pour aller plus loin, je viens de voir un plugin permettant d’accéder au détail d’un build et de lancer les sous-tâches sans passer par la console. Non testé, mais je vais le monter, c’est utile.
Ensuite, les bonus :)

Le premier :
Après quelques soucis avec TortoiseSVN, j’ai dégoté un client SVN console pour Windows. Et c’est bien pratique. Penser à ajouter le “bin” à votre “Path”.
Les complémentaires, via TED :
-
Hans Rosling nous parle de l’évolution globale de la population, et nous propose un avenir possible (10’04”)
-
Mitchell Joachim nous présente un projet de village végétal, à faire pousser (2’57”)
-
Ellen Gustafson fait un point rapide sur 2 problèmes nutritifs mondiaux : obésité et faim – recul rapide intéressant (9’30”)
In: developpement, flash, matiere a penser, pro · Tagged with: ant, developpement, flash, flashdevelop, ideas, svn, ted

