Le menu
À retenir
Outils
- Convertisseur de code source en HTML
- Générateur de lien en (x)HTML
- Traduction Français-Esperanto online
Vie pratique
Portfolio
Présidentielles
Culture
- Respect des droits d'auteurs et droits voisins — Refus des Mesures Techniques de Protection (MTP)
- Licence globale : finalement je suis contre...
- Lettre à la SACEM : Réaction par rapport au projet de loi DADVSI
- Reprenons en main la culture !
- Gestion Numérique des droits (DRM) : une question de confiance
- Gestion Numérique des droits (DRM) : une question de confiance (2)
Archives
- Septembre 2008
- Aout 2008
- Juillet 2008
- Juin 2008
- Mai 2008
- Avril 2008
- Mars 2008
- Février 2008
- Janvier 2008
- Décembre 2007
- Novembre 2007
- Octobre 2007
- Septembre 2007
- Aout 2007
- Juillet 2007
- Juin 2007
- Mai 2007
- Avril 2007
- Mars 2007
- Février 2007
- Janvier 2007
- Décembre 2006
- Novembre 2006
- Octobre 2006
- Septembre 2006
- Aout 2006
- Juillet 2006
- Juin 2006
- Mai 2006
- Avril 2006
- Mars 2006
- Février 2006
- Janvier 2006
- Décembre 2005
- Novembre 2005
- Octobre 2005
- Septembre 2005
- Aout 2005
- Juillet 2005
- Juin 2005
- Mai 2005
- Avril 2005
- Mars 2005
- Février 2005
- Janvier 2005
- Décembre 2004
- Novembre 2004
- Octobre 2004
Spornikethon
- Mes créations vous plaisent ?
- Vous voulez me soutenir financièrement ?
- Cliquez sur un des boutons ci-dessous selon le montant du dons.
- Merci !
Rouleaux de blogs
Mes préférés
Les amis
- Les bla-blas de Chibi
- Lysel
- Orpheelin
- Nae-chan in Psycholand
- Circée
- Faery Book
- Les bijoux de Hime-Decco
Divers
Mes liens
- Non à la brevetabilité des logiciels en Europe
- Promotion d'artistes proposant de la musique légale et gratuite à télécharger
- Associations pour le Maintien d’une Agriculture Paysanne
- La Bible
- Wikipédia
- Le Trésor de la Langue Française Informatisé
- Liste prête à l'emploi pour Adblock
- Partitions pour guitare classique
- Forum francophone pour les collectionneurs et créateurs de poupées
- Association sportive et culturelle du 13ème arrondissement
Bombardement Google
Intégrer l'outil checkstyle à sa gestion de projet
Le 18 Août 2005 à 00:17
Résumé
Checkstyle est un outil d'analyse de source configurable. En l'intégrant à ses projets, cela facilite l'uniformisation des conventions de programmation. Cet article présente un manière d'intégrer cet outil
Présentation de l'outil
Checkstyle est un outil d'analyse de code source Java configurable. Son but est de vérifier qu'un code source respecte les conventions de programmation choisies pour le projet. Cela contribue à une meilleure lisibilité du code, ce qui peut permettre de faciliter la compréhension du code et sa maintenance.
Intégration de l'outil
Checkstyle peut être piloté par ant. On va donc utiliser cette méthode de préférence à des plug-in pour les environnement intégrés, afin de s'affranchir de l'environnement de développement. Afin de pouvoir réutiliser l'intégration dans tous les projets à vérifier, on va utiliser les mécanismes d'importations de ant. L'intégration de checkstyle se décomposera donc en les étapes suivantes
- Préparation d'un dépôt pour la définition de nouvelles tâches ant
- Définition de la tâche checkstyle, initialisation de valeurs par défaut, et fichiers par défaut (règles et feuille de style XSL)
- Intégration de la tâche checkstyle à un projet ant existant
- Appel de la tâche checkstyle
Préparation d'un dépôt pour la définition de nouvelles tâches ant
Créer un répertoire __Tasks
situé au même endroit que le répertoire de votre projet. Créer le sous-répertoire checkstyle
. Copier dans ce dernier répertoire le ficher checkstyle-all-<version>.jar
.
Définition de la tâche checkstyle, initialisation de valeurs par défaut, et fichiers par défaut (règles et feuille de style XSL)
La dernière version de Ant permettent l'importation de scripts. On prépare donc un tel script, sauvegardé dans __Tasks
sous le nom import_checkstyle.xml
. Ici on utilise la version 4.10 beta de checkstyle.
<?xml version="1.0"?> <project name="checkstyle" basedir="." default="default"> <dirname property="checkstyle.basedir" file="${ant.file.checkstyle}"/> <taskdef resource="checkstyletask.properties" classpath="${checkstyle.basedir}/checkstyle/checkstyle-all-4.0-beta1.jar"/> <property name="default.checkstyle.conf" value="${checkstyle.basedir}/checkstyle/sporniket_style.xml"/> <property name="default.checkstyle.xsl" value="${checkstyle.basedir}/checkstyle/checkstyle_simple_report.xsl"/> <target name="default"/> </project>
La variable default.checkstyle.conf
référence un fichier de règles que checkstyle va vérifier. Checkstyle est livré avec un fichier de règles permettant de suivre les règles édictées par Sun, l'éditeur du language Java. On peut donc utiliser ce fichier comme base de travail.
La variable default.checkstyle.xsl
référence un fichier de transformation xslt pour transformer un rapport XML de checkstyle en autre chose, généralement une page web, grace à la tache ant style
. Voici un exemple très simple de transformation, qui affiche pour chaque fichier les erreurs détectées.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="checkstyle"> <html> <head> <title>Rapport d'erreur de checkstyle</title> </head> <body> <h1>Rapport d'erreur de checkstyle</h1> <p>Nombre d'erreurs : <xsl:value-of select="count(file/error)"/></p> <p>Proportion de fichiers avec erreurs : <xsl:value-of select="count(file[count(error)>0])"/>/<xsl:value-of select="count(file)"/></p> <dl> <xsl:apply-templates/> </dl> </body> </html> </xsl:template> <xsl:template match="file"> </xsl:template> <xsl:template match="file[count(error)>0]"> <dt><a> <xsl:attribute name="href"><xsl:value-of select="@name"/></xsl:attribute> <xsl:value-of select="@name"/> </a></dt> <xsl:apply-templates/> </xsl:template> <xsl:template match="error"> <dd><em><xsl:value-of select="@severity"/> Ligne <xsl:value-of select="@line"/></em> : <xsl:value-of select="@message"/></dd> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet>
Intégration de la tâche checkstyle à un projet ant existant
Rajouter simplement la directive suivante dans votre script ant :
<import file="../__Tasks/import_checkstyle.xml"/>
Appel de la tâche checkstyle
Voici un exemple d'utilisation de la tache checkstyle, avec la génération d'un rapport xml qui est ensuite transformé en rapport html.
<property name="build.src" value="src"/> <property name="build.compile" value="bin"/> <property name="build.dest" value="build"/> <property name="build.report" value="reports"/> <property name="build.tmp" value="tmp"/> <property name="javadoc.dest" value="doc"/> <property name="project" value="sporniket_core_base"/> <!-- =========================================================== Audit the code --> <target name="audit"> <checkstyle config="${default.checkstyle.conf}" failureProperty="checkstyle.failure" failOnViolation="false"> <fileset dir="${build.src}" includes="**/*.java"/> <!-- Location of cache-file. Something that is project specific --> <property key="checkstyle.cache.file" file="${build.tmp}/cachefile"/> <formatter type="xml" toFile="${build.report}/${project}.xml"/> </checkstyle> <style in="${build.report}/${project}.xml" out="${build.report}/${project}.html" style="${default.checkstyle.xsl}"/> </target>
Correction de bogues...
Le 17 Août 2005 à 23:39
Apparemment Internet Explorer n'aimait pas mon image utilisée en bandeau...
Citation du jour
Le 04 Août 2005 à 15:50
Prenez un homme sur un cheval (je parle en connaissance de cause: j'ai fait du cheval presque toute ma vie); eh bien c'est la plupart un homme affable, mais un changement radical se produit des qu'il enfourche sa monture. Tout homme à cheval devient arrogant, aussi aimable soit t'il lorsque qu'il est à pied. L'homme dans sa voiture est mille fois plus dangereux. Je vous le dis: Si jamais l'automobile venait à se généraliser, cela engendrait un égoïsme terrible chez l'être humain. Cela entraînerait une violence dans des proportions que nous n'avons encore jamais connues: Ce serait la fin de la famille telle que nous l'avons connue: trois ou quatre générations partageant avec bonheur le même foyer. Cela anéantirait nos relations avec notre voisinage et l'idée même de la communauté. Nous verrions de gigantesques villes se créer comme des cancers, des banlieue résidentielles à la fausse opulence, une campagne aux paysages ruinés, des agglomérations encerclées par des usines destructrices pour la santé, des fermes industrielles spécialisées. Cela ferait de chaque homme un tyran.
R.A Lafferty fin XIX em siècle