IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intégration Continue Discussion :

Ant et CheckStyle [Hudson]


Sujet :

Intégration Continue

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Points : 56
    Points
    56
    Par défaut Ant et CheckStyle
    Bonjour,

    Voila mon premier build Ant est passé avec Hudson !
    J'ai installé le plugin CheckStyle et StaticAnalisys !
    Sauf que je ne comprends pas bien un truc
    Il faut configurer CheckStyle pour qu'il fonctionne avec un fichier .xml j'ai réussi à trouver un exemple cela donne un truc comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <module name="Checker">
    <module name="Translation" /> 
    <module name="TreeWalker"> 
    <module name="JavadocMethod" /> 
    <module name="JavadocType" /> 
    <module name="JavadocVariable" /> 
    <module name="JavadocStyle" /> 
    ....
    Sauf qu'a l'exécution j'obtiens ce message d'Hudson
    Checkstyle: 0 warnings dans 0 fichiers Checkstyle.
    No warnings since build 4.
    New zero warnings highscore: no warnings since yesterday!
    During parsing an error has been reported.
    Questions:
    - Que faut il indiquer comme fichier à Hudson lorsque que l'on coche Publier les résultats de l'analyse CheckStyle ?
    - Faut-il modifier notre build Ant pour intégrer une cible checkStyle ?
    - Où faut il placer le fichier checkstyle-result.xml ?
    Merci
    A l'intégration continue quand tu nous tiens !!!

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Points : 794
    Points
    794
    Par défaut
    Pour que le plugin Checkstyle de Hudson affiche les résultats sous forme de graphe et de tableaux dans Hudson, il faut lui donner le fichier de résultat checkstyle.
    Ce fichier de résultat checkstyle est produit par le processus d'intégration, outillé par exemple Ant dans ton cas.
    Le plugin Checkstyle de Hudson n'est que un plugin de reporting, il ne lance pas Checkstyle.

    Il te faut donc lancer Checkstyle par Ant comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <project>
     <taskdef resource="checkstyletask.properties"
             classpath="lib/checkstyle-all-4.4.jar"/>
     <target name="run-checkstyle">
       <checkstyle config="conf/sun_checks.xml">
        <fileset dir="src" includes="**/*.java"/>
        <formatter type="xml" toFile="checkstyle_errors.xml"/>
       </checkstyle>
     </target>
    </project>
    La cible 'run-checkstyle' sera lancée par Hudson dans les étapes de build.

    Dans l'exemple ci-dessus, le fichier checkstyle_errors.xml sera généré a la racine de l'espace de travail de Hudson.
    Le plugin Checkstyle de Hudson prendra ce fichier comme input 'checkstyle_errors.xml'.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Points : 56
    Points
    56
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <taskdef resource="checkstyletask.properties"
             classpath="lib/checkstyle-all-4.4.jar"/>
    J'ai bien ajouté le fichier checkstyle-all-4.4.jar à la librairie du plugin checkstyle, crée le fichier checkstyle_errors.xml que j'ai placé dans le repertoire de travail de mon projet Hudson.
    Mais j'ai toujours une erreur au niveau du lancement de checkstyle.

    j'obtiens le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [taskdef] Could not laod definitions from resource checkstyletask.properties. It could not be found
    Voici mon build.xml pour le projet HelloWorld
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <project default="run">
       <property name="src.dir" value="src" /> 
       <property name="bin.dir" value="bin" /> 
       <property name="jar.dir" value="exe" /> 
       <property name="Main-Class" value="org.sdf.HelloWorld" /> 
      
       <target name="clean">
         <delete dir="${bin.dir}" /> 
         <delete dir="${jar.dir}" /> 
         <echo message="Netoyage termine" /> 
       </target>
      
       <target name="compile" depends="clean">
         <mkdir dir="${bin.dir}" /> 
         <javac srcdir="${src.dir}" destdir="${bin.dir}" /> 
         <echo message="Compilation terminee" /> 
       </target>
      
       <target name="jar" depends="compile">
         <mkdir dir="${jar.dir}" /> 
         <jar destfile="${jar.dir}/HelloWorld.jar" basedir="${bin.dir}">
           <manifest>
             <attribute name="Main-Class" value="${Main-Class}" /> 
           </manifest>
         </jar>
         <echo message="Creation du fichier jar terminee" /> 
       </target>
      
       <target name="run" depends="jar">
         <java jar="${jar.dir}/HelloWorld.jar" fork="true" /> 
         <echo message="Execution terminee" /> 
       </target>
      
       <taskdef resource="checkstyletask.properties" classpath="lib/checkstyle-all-4.4.jar" /> 
      
       <target name="run-checkstyle">
         <checkstyle config="conf/sun_checks.xml">
           <fileset dir="src" includes="org/sdf/HelloWorld.java" /> 
           <formatter type="xml" toFile="checkstyle_errors.xml" /> 
         </checkstyle>
       </target>
    
    </project>
    Merci

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Points : 56
    Points
    56
    Par défaut
    Un petit problème résolu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <taskdef resource="checkstyletask.properties" classpath="lib/checkstyle-all-4.4.jar" />
    Dans le classpath j'ai du mettre le chemin complet
    C:/repertoire de travail d'huson/plugins/checkstyle-3.6/WEB-INF/lib
    et la ce trouve le checkstyle-all-4.4.jar

    Un peu noob sur ce coup là !!!

    Le build est de nouveau fonctionnel mais les rapports checkstyle n'apparaissent toujours pas ! on m'affiche le message suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Errors
    Module workspace: Le fichier workspace est ignoré parce qu'il est vide.
    pourtant j'ai bien dans le workspace le fichier checkstyle_errors.xml qui est celui indiqué dans le input d'hudson.
    Si quelqu'un a idée !

    Merci

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Tu dois placer ton fichier de config ds ton projet (tu dois donc avoir des modules ds ton workspace que tu as préalablement défini lors du paramétrage de gestionnaire de source CVS ou SVN), il est normal que l'on te dise que ton worspace est vide si tu n'as défini aucun module. Le fichier checkstyle_errors.xml quant à lui, tu devra le placer lors de ta configuration (dans Actions à la suite du build -> Publier les résultats de l'analyse Checkstyle -> Publier les résultats de l'analyse Checkstyle -> Checkstyle results)

    Par contre moi j'aurai une question:

    Lorsque je lance un Build, il ne prend en compte qu'un seul module lors de la création du fichier checkstyle_errors.xml. J'ai pourtant séparer tous mes modules d'un espace, mais rien à faire!! je dois les faire passer un par un pour créer le fichier pour pouvoir ensuite avoir un rapport complet.

    Quelqu'un a-t-il une solution???

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Points : 56
    Points
    56
    Par défaut
    Oui finalement j'ai réussi j'ai lancé la commande ant checkstyle directement en ligne de commande et cela m'a généré un fichier checkstyle_errors.xml qui est quasiment vide.
    Il contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <?xml version="1.0" encoding="UTF-8" ?> 
      <checkstyle version="4.4" />
    Et sinon j'ai cherché sur le site de checkstyle !! En effet il faut configurer des modules pour afficher quelque chose mais il y a tellement de module !!

    Et la je suis partie sur l'installation de Pmd et findbugs qui suivent le même principe que checkstyle !!

    Je ne m’y connais pas trop en module car je viens juste de découvrir leur existence mais j'ai pu constater que l'on peut imbriquer des modules comme dans l'exemple suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <checkstyle version="4.4">
    	<module name="Checker">
    		<module name="JavadocPackage"/>
    		<module name="TreeWalker">
    			<module name="AvoidStarImport"/>
    			<module name="ConstantName"/>
    			<module name="EmptyBlock"/>
    		</module>
    	</module> 
    </checkstyle>
    Cela pourra peut être t'aider

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Je n'ai pas testé ton morceau de code car j'avais tout fait manuellement, par contre j'ai le probleme du :

    FATAL: Java heap space
    java.lang.OutOfMemoryError: Java heap space


    Tous passe avec succès mais a cause de cela, mon build ne passe pas avec succès.
    Du coup je ne peux pas avoir tous rapport checkstyle.....

    Que faire?

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Points : 794
    Points
    794
    Par défaut
    @abmdouz
    Essaie d’augmenter la taille de la mémoire allouée via la variable ANT_OPTS
    comme set ANT_OPTS="-Xms512m"

    Les autres solutions:
    - Mettre en place un fichier de règles checkstyle moins restrictif
    - Réduire le volume de code à vérifier

  9. #9
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    j'aimerai savoir quels sont les output de Checkstyle. Est-ce que ses rapports sont sous forme de fichiers XML?

    Merci.

  10. #10
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    J'ai trouvé la commande -r qui permet de spécifier le fichier dans lequel le rapport sera stocké et l'extension de celui-ci peut être .xml || .html || .txt.

    Est-ce qu'on ne pourrait pas le parser en .pdf par exemple? Ou autre(s)? Et proposerait-il des rapports "graphiques" par exemple?

    Est-ce que Chechstyle possède des contraintes sur les IDE sur lesquels il peut fonctionner? En d'autres termes est-ce qu'on pourrait l'intégrer dans notre propre IDE par exemple (un IDE autre que ceux qui sont cités sur le site officiel de Checkstyle) ?

    Merci merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Ant] Log Checkstyle et Findbugs
    Par Anthony14 dans le forum Qualimétrie
    Réponses: 4
    Dernier message: 13/05/2009, 14h16
  2. [Ant] Récupérer une variable d'envionnement
    Par lionel69 dans le forum ANT
    Réponses: 4
    Dernier message: 25/01/2007, 10h22
  3. [Ant] le srcipt ne passe plus sur la 3.0
    Par yolepro dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/01/2004, 12h01
  4. [Ant]Jbuilder9
    Par Theoden dans le forum JBuilder
    Réponses: 34
    Dernier message: 16/10/2003, 15h06
  5. [POSTGRES] Pb à l'installation de Ant
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 28/05/2003, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo