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

  1. #1
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut New regles pmd avec sonar

    Bonjour,

    j'ai créé de nouvelles règles pmd, mais je ne sais pas comment je peux les utiliser avec sonar. Mes règles sont contenu dans un jar.

    Est ce que quelqu'un aurait la solution?

    merci

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2005
    Messages : 3 790
    Points : 7 699
    Points
    7 699

    Par défaut

    Bonjour,

    Il te faut faire comme cela :
    Connecte toi sur Sonar en tant qu'administrateur.
    En haut à droite, "Configuration", puis "Create profile".
    Là, tu définis un nom pour le nouveau profile, puis tu uploades les configurations PMD et checkstyle sous forme de fichier XML.
    Ensuite, soit tu définis ce nouveau profil comme celui par défaut, soit tu cliques sur le lien "0 projets", et tu ajoutes le ou les projets qui utiliseront ce nouveau profile de qualité.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    ok mais ca c'est pour charger un fichier xml définissant les règles.
    J'ai bien mon fichier xml définissant mes nouvelles règles; Cependant le code java des nouvelles regles est dans un jar et je ne sais pas comment ajouter ce jar dans sonar.
    Si je charge juste mon fichier xml, les nouvelles regles seront appeler mais pas trouvé, vu que le jar cible n'est pas la.

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2005
    Messages : 3 790
    Points : 7 699
    Points
    7 699

    Par défaut

    Ah ok, tu as écrit le code Java de nouvelles règles.
    Je ne l'ai jamais fait, mais à priori, tu dois mettre les fichiers dans le répertoire extensions/rules/pmd et extensions/rules/checkstyle du répetoire d'installation de Sonar.
    Une page wiki explique cela.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    je ne comprends pas, j'ai bien suivi l'exemple.
    Je tente de d'inserrer mes regles checkstyle.
    J'ai placé le jar de mes nouvelles regles dans extensions/rules/checkstyle et j'ai egalement mis dans ce repertoire un fichier xml decrivant mes regles.
    Mais il ne se passe rien.
    Le projet associé n'est pas checké.Et si j'enleve le jar du repertoire, ca marche quand meme.

    Quelqu'un aurait une idée car la je suis paumé.

    merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 61
    Points : 70
    Points
    70

    Par défaut

    Salut captu,

    Parles-tu de règles checkstyle ou de règles PMD ?
    Une fois le serveur redémarré, vois-tu la définition de tes règles dans le moteur de recherche du profil ?

    Simon

  7. #7
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    alors en fait j'ai des regles PMD ET Checkstyle, mais pour le moment je vais essayer de faire marcher les regles checkstyle.

    Oui une fois le profil créé je vois bien les regles et mon projet est bien associé a ce profil (profil par default) mais le projet n'est pas checké et comme je le disais si j'enleve le jar sa marche toujours.

    Je vais decrire precisément tout ce que j'ai:

    fichier xml checkstyle associé au profil:
    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
    <module name="Checker">
    
    
    	<!-- longueur max du fichier -->
    	<module name="FileLength" />
    
    	<module name="TreeWalker">
    		
    		<!--  Dans un try-catch, le catch doit etre sur la meme ligne que l'accolade fermante du try -->
    		<!-- dans les if-else, le else doit etre sur la meme ligne que l'accolade fermante du if -->
    		<module name="rules.ElseCatchPosition">
    		  <property name="option" value="eol"/>
    		</module>
    		
    		<!--  Un espace devant une accolade ouvrante -->
    		<module name="rules.LeftCurlyWhiteSpaceBefore">
    		</module>
                <module name="FileContentsHolder"/>
    	  </module>
    	<module name="SuppressionCommentFilter"/>
    </module>
    arborescence du jar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my_checkstyle.jar
             |_rules (package)
                     |_ElseCatchPosition.class/java
                     |_LeftCurlyWhiteSpaceBefore
    fichier xml "index" dans extensions/rules/checkstyle:
    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
    <rules>
    	<rule key="rules.ElseCatchPosition">  <!-- Path to your class file -->
    		<name>Else Catch Position</name>
    		<configKey>Checker/TreeWalker/rules.ElseCatchPosition</configKey>
    		<category name="Maintainability"/>
    		<description>Le else et le catch doivent etre sur le meme ligne que le } du if et du try</description>
    		<param key="option" type="s">
    			<description>l_option, nl ou eol</description>
    		</param>
    	</rule>
    
    	<rule key="rules.LeftCurlyWhiteSpaceBefore">  <!-- Path to your class file -->
    		<name>Left Curly White Space Before</name>
    		<configKey>Checker/TreeWalker/rules.LeftCurlyWhiteSpaceBefore</configKey>
    		<category name="Maintainability"/>
    		<description>Pas d_espace devant { </description>
    		<param key="option" type="s">
    			<description></description>
    		</param>
    	</rule>
    </rules>
    il y a egalement quelque chose que je ne comprends pas, ma deuxieme regle n'a pas besoin de parametre, neanmoins, sonar ne fonctionne pas si je ne mets pas la balise <param> (donc je l'ai mise mais avec n'importe quoi dedans )


    en esperant que vous pourrez m'aider

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 61
    Points : 70
    Points
    70

    Par défaut

    La définition XML et ton JAR m'ont l'air d'être OK. Par contre je ne comprend pas ce que tu appelles le "fichier xml checkstyle associé au profil". Je n'ai pas l'impression que ce soit un export XML depuis l'interface Sonar. L'utilises-tu dans ton pom ?

    De + le profil par défaut ("Sonar way") ne peut pas être modifié. Tu ne peux activer tes 2 règles que sur un nouveau profil.

  9. #9
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    Pourtant en cliquant sur set as default, mon profil est devenu profil par default a la place de "sonar way".

    "fichier xml checkstyle associé au profil" est les fichier xml checkstyle que j'ai chargé en creant mon profil.

    voici le pom de mon projet:
    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
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>Pentalog</groupId>
      <artifactId>Recherche_SVN_SONAR</artifactId>
      <name>Test_Sonar</name>
      <version>1.0</version>
      <build>
            <sourceDirectory>./src</sourceDirectory>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                      <source>1.5</source>
                      <target>1.5</target>
                  </configuration>
               </plugin>
            </plugins>
      </build>
      <properties>
      	<sonar.light>true</sonar.light>
      </properties>
    </project>

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 61
    Points : 70
    Points
    70

    Par défaut

    OK je comprend mieux. Merci pour ces précisions.
    Peux-tu attacher le résultat de l'export XML depuis la page "Quality profiles", et également le fichier target/sonar/checkstyle.xml après analyse du projet ?
    Merci

  11. #11
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    ok, voici le target/sonar/checkstyle.xml (en piece jointe)
    (cependant en realité j'ai plus de deux regles )
    et l'export de mon profil (c'est en csv, j'ai du le mettre dans un rar car l'export ne marchait pas)
    Fichiers attachés Fichiers attachés

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 61
    Points : 70
    Points
    70

    Par défaut

    et comment déduis-tu que tes règles ne sont pas exécutées ? Tu t'attends à avoir des erreurs sur ton projet ?
    De mémoire Checkstyle devrait planter si il ne trouve pas une des règles définies. Est-ce le cas ? Le batch maven génère-il une erreur ? Si oui peux-tu envoyer le log ?

    Autre requête, peux-tu attacher le fichier target/sonar/sonar-pom.xml ?
    Patience, nous allons y arriver à force

  13. #13
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    en effet j'ai volontairement créé des erreurs dans mon projet qui ne sont pas détectées.
    je ne pense pas que checkstyle plante car sonar se demarre sans probleme mais en meme temps je ne sais pas ou regarder pour verifier.

    Pour le batch maven, je comprend pas. Mis a part avoir mavenisé mon proj, je ne connait pas bien maven

    voici en piece jointe le fichier "target/sonar/sonar-pom.xml"


    je te remercie de ton aide
    Fichiers attachés Fichiers attachés

  14. #14
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    c'est bizarre chacun de mes nouvelles regles est associé pour sonar à la fois pour checkstyle, pmd et findbugs, comment est ce possible?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 61
    Points : 70
    Points
    70

    Par défaut

    Question idiote, mais as-tu bien copié my_checkstyle.jar dans extensions/rules/checkstyle ?
    Si tu n'executes pas sonar en mode standalone classique mais en déployant le WAR, n'oublies pas qu'il faut ré-éxecuter war/build-war.sh

  16. #16
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    oui new_checkstyle.jar est bien extensions/rules/checkstyle, tout comme mon fichier xml index de description des regles.

    Pour executer sonar, j'utilise le fichier StartSonar.bat, je ne cree pas de war

  17. #17
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    Je n'y arrive toujours pas.
    Tu n'as pas d'autre idees?
    Je desespere

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 61
    Points : 70
    Points
    70

    Par défaut

    Tu peux envoyer les logs de demarrage du serveur STP ?

  19. #19
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    biensur; voici le log de démarrage du serveur

    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
    STATUS | wrapper  | 2009/12/02 11:08:10 | --> Wrapper Started as Console
    STATUS | wrapper  | 2009/12/02 11:08:10 | Java Service Wrapper Community Edition 3.3.0
    STATUS | wrapper  | 2009/12/02 11:08:10 |   Copyright (C) 1999-2008 Tanuki Software, Inc.  All Rights Reserved.
    STATUS | wrapper  | 2009/12/02 11:08:10 |     http://wrapper.tanukisoftware.org
    STATUS | wrapper  | 2009/12/02 11:08:10 | 
    STATUS | wrapper  | 2009/12/02 11:08:10 | Launching a JVM...
    INFO   | jvm 1    | 2009/12/02 11:08:11 | WrapperManager: Initializing...
    2009.12.02 11:08:13 INFO  org.sonar.INFO  JDBC datasource bound to JNDI, name=jdbc/sonar
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish 8 GWT extensions to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.resourceviewer.GwtResourceViewer to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.defaultsourceviewer.GwtDefaultSourceViewer to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.coverageviewer.CoverageViewer to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.violationsviewer.ViolationsViewer to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.duplicationsviewer.DuplicationsViewer to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.testdetailsviewer.TestsViewer to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.clouds.GwtClouds to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:15 INFO  org.sonar.INFO  publish org.sonar.plugins.core.hotspots.GwtHotspots to C:\sonar-1.10\war\sonar-web\deploy\gwt
    2009.12.02 11:08:16 INFO  org.sonar.INFO  loading metrics...
    2009.12.02 11:08:16 INFO  org.sonar.INFO  loading findbugs rules...
    2009.12.02 11:08:19 INFO  org.sonar.INFO  loading findbugs extensions...
    2009.12.02 11:08:19 INFO  org.sonar.INFO  loading checkstyle rules...
    2009.12.02 11:08:20 INFO  org.sonar.INFO  loading checkstyle extensions...
    2009.12.02 11:08:20 INFO  org.sonar.INFO  loading pmd rules...
    2009.12.02 11:08:22 INFO  org.sonar.INFO  loading pmd extensions...
    2009.12.02 11:08:24 INFO  org.sonar.INFO  loading findbugs profiles...
    2009.12.02 11:08:24 INFO  org.sonar.INFO  loading the profile Sonar way with Findbugs/java from findbugs
    2009.12.02 11:08:30 INFO  org.sonar.INFO  loading checkstyle profiles...
    2009.12.02 11:08:30 INFO  org.sonar.INFO  loading the profile Sonar way/java from checkstyle
    2009.12.02 11:08:31 INFO  org.sonar.INFO  loading the profile Sonar way with Findbugs/java from checkstyle
    2009.12.02 11:08:32 INFO  org.sonar.INFO  loading the profile Sun checks/java from checkstyle
    2009.12.02 11:08:34 INFO  org.sonar.INFO  loading pmd profiles...
    2009.12.02 11:08:34 INFO  org.sonar.INFO  loading the profile Sonar way/java from pmd
    2009.12.02 11:08:37 INFO  org.sonar.INFO  loading the profile Sonar way with Findbugs/java from pmd
    2009.12.02 11:08:40 INFO  org.sonar.INFO  loading the profile Sun checks/java from pmd
    2009.12.02 11:08:40 INFO  org.sonar.INFO  activating java default profile...
    INFO   | jvm 1    | 2009/12/02 11:08:53 | Sonar listens http://0.0.0.0:9000/

  20. #20
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 94
    Points : 52
    Points
    52

    Par défaut

    C'est bon j'ai reussi (non sans mal).
    Je poste la solution, peut certains seront intressé.

    Alors, la methode pour inserrer les nouvelles regles etait bonne mais pour une raison inconnu, certaine methodes dans mes regles custom ne fonctionnaient pas, comme par exemple la classe "getPreviousSibling" de la classe Check.

    J'ai repris mes methodes une par une et j'ai modifié celles qui devaient l'etre.

    Voila

    merci de m'avoir aider simon.brandhof

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/04/2011, 11h36
  2. Réponses: 2
    Dernier message: 23/02/2010, 10h23
  3. [Dojo] Souci pour supprimer une regle css avec dojox.html.removeCssRule
    Par arasm dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 16/12/2009, 18h54
  4. new File, appeler avec un chemin relatif
    Par Lord Yu dans le forum IO
    Réponses: 2
    Dernier message: 30/06/2009, 12h05
  5. Règle ponctuelle avec Ipatables
    Par FrankOVD dans le forum Sécurité
    Réponses: 1
    Dernier message: 31/01/2006, 22h04

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