FlexPMD, l'outil d'audit Adobe peut être appelé soit en ligne de commande, soit par Ant. Vous pouvez donc générer un rapport comme une tâche supplémentaire de votre build Ant. Dans ce tutorial, on va voir comment faire fonctionner le build Ant depuis Flex Builder.
Installer Ant dans Flex Builder
Tout d'abord, la première étape est d'installer Ant dans Flex Builder 3. Pour cela, suivez ce tutorial Flex:
Installer Ant dans Flex Builder 3
Télécharger FlexPMD pour Ant et le copier dans votre projet
Rendez vous sur la page de téléchargement de FlexPMD et téléchargez la dernière version pour Ant (les numéros de version peuvent varier par rapport au screenshot):

Dézippez l'archive que vous venez de télécharger, vous devriez y trouver une série de fichiers JAR. Dans le projet que vous souhaitez vérifier avec FlexPMD, créez un dossier "lib" à la racine:

Créer le script Ant pour FlexPMD
A la racine de votre projet, créez un nouveau fichier que l'on va nommer "antpmd.xml". C'est ce fichier qui va contenir votre script Ant. Si vous avez déjà un build Ant (build.xml) de crée, vous pouvez le réutiliser en ajoutant simplement les taskdef et target qui vont suivre.
- Allez ensuite dans le menu Run > Extenal Tools > Open External Tools Dialog…
- Cliquez sur Ant Build puis sur le bouton New (juste en haut à gauche)
- Nommez votre configuration Ant "FlexPMD" puis faites pointer le "Buildfile" vers votre fichier antpmd.xml et votre "Base Directory" vers le répertoire de votre projet. Vous devriez avoir quelque chose comme ceci:

Fermez cette fenêtre puis ouvrez le fichier antpmd.xml. N'utilisez pas le code qui se trouve sur le site officiel, il est pour l'instant buggé.
Collez le code suivant dans ce fichier:
<project name="Flex PMD example" default="flexPmdWithDefaultRuleset" >
<description>
Flex PMD example
</description>
<property name="projecthome" value="${basedir}" />
<property name="flexpmd.version" value="1.0.RC3" />
<property name="flexpmd.dir" value="${basedir}/lib" />
<property name="src.dir" value="src" />
<property name="bin.dir" value="bin" />
<!--****************************************************
FlexPMD
*****************************************************-->
<taskdef name="flexPmd"
classname="com.adobe.ac.pmd.ant.FlexPmdAntTask"
classpath="${flexpmd.dir}/flex-pmd-ant-task-${flexpmd.version}.jar">
<classpath>
<pathelement location="${flexpmd.dir}/flex-pmd-ruleset-api-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/flex-pmd-ruleset-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/flex-pmd-core-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/as3-plugin-utils-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/as3-parser-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/as3-parser-api-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/pmd-4.2.2.jar"/>
<pathelement location="${flexpmd.dir}/as3-plugin-utils-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/commons-lang-2.4.jar"/>
<pathelement location="${flexpmd.dir}/flex-pmd-files-${flexpmd.version}.jar"/>
<pathelement location="${flexpmd.dir}/plexus-utils-1.0.2.jar"/>
</classpath>
</taskdef>
<target name="flexPmdWithCustomRuleset">
<flexPmd
sourceDirectory="${src.dir}"
outputDirectory="${bin.dir}"
ruleSet="${flexpmd.dir}/pmd.xml"/>
</target>
<target name="flexPmdWithDefaultRuleset">
<flexPmd
sourceDirectory="${src.dir}"
outputDirectory="${bin.dir}"/>
</target>
</project>
Lancer le script Ant et récupérer le fichier pmd.xml
Une fois votre fichier antpmd.xml sauvegardé et prêt, ouvrez la vue Ant: Window > Other Views.. > Ant > Ant. Faîtes un glisser-déplacer de votre fichier Ant vers la vue Ant pour l'y ajouter. Faîtes ensuite un double clic pour lancer la tâche Ant par défaut (flexPmdWithDefaultRuleset).

Le détail du build va s'afficher dans la console. Si le build se passe correctement, vous trouverez votre fichier dans le répertoire "bin" de votre application. Vous pouvez bien sûr modifier cette tâche Ant à votre guise.
Visualiser le fichier pmd.xml
Le fichier pmd.xml est un rapport de données brut. Pour le visualiser, vous pouvez utiliser l'application FlexPMD Violation Viewer. Il vous suffit d'uploader votre fichier pmd.xml et l'application va afficher le détail des violations ainsi que les numéros de ligne concernées.
Accéder au FlexPMD Violation Viewer
Autres Tutoriaux Flex liés:









Merci Fabien pour se tutorial.
Juste pour info, maintenant la version est la 1.0.RC4. Aussi flex builder génère un dossier libs et non lib. Il faut donc ne pas oublier de modifier ces paramètres dans le fichier antpmd.xml comme dans l'exemple.
Merci pour l'info. En fait le projet sur lequel j'ai testé FlexPMD était un vieux projet à l'époque crée avec Flex Builder 2, qui ne créait pas de dossier libs
. Il reste quand même que le dossier libs de Flex Builder devrait rester pour inclure des SWC sans devoir les ajouter au build à la main et pas forcement pour des jar. Après c'est une question d'organisation.
Fabien