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

Qualimétrie Discussion :

Création de règles avec PMD (ou CheckStyle ?)


Sujet :

Qualimétrie

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Points : 52
    Points
    52
    Par défaut Création de règles avec PMD (ou CheckStyle ?)
    Bonjour,

    Je suis en tran d'étudier les deux plugins qui permettrent de faire de la qualimétrie. Je voudrai pouvoir créer mes propres règles, par contre je n'en ai aucune idée, je comprend pas trop le terme AST.
    J'aurai besoin de tuto parce que ce que j'ai trouvé je comprend pas grand chose.
    Si quelqu'un a déja créer une régle et pouvais m'expliquer comment il a procédé ca serai sympha !

    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Je pense que PMD est le logiciel le plus approprié à ton besoin... Le terme AST n'est pas compliqué, il s'agit juste de représenter un fichier source comme un arbre. (on parle donc d'arbre syntaxique).

    Une classe Java est contenu dans un fichier, commence par le package, puis les imports, enfin la déclaration de la classe, soit l'arbre suivant:

    CompilationUnit (le fichier )
    -> package
    -> imports
    -> Classe
    -> nom de la classe
    -> classe héritée
    -> interfaces
    -> .....

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Points : 52
    Points
    52
    Par défaut pmd regle Desinger
    Merci pour ta réponse , j'ai donc commencer par cela :
    Mon but par exemple est de créer une régle qui m'alerte lorsque dans le code se trouve la méthode toString qui peut être appliquable a une varible ou a tableau de chaine de caractère.
    Pour cela , j'ai écris ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class a {
    	int fOne;
    	private void run() {
    	     fOne.toString();
    	}
    }
    ]
    et le fichier XML est générer sous forme d'un AST(Abstract Syntax tree) ensuite sur la gauche se trouve le Xpath j'ai mis ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //ClassOrInterfaceBodyDeclaration/MethodDeclaration/Block
    Et donc me retourne Ceci du code : fOne.toString();.

    Ensuite je ne sais pas comment faire, je ne trouve pas de tuto sur le net , je ne sais pas comment créer ma régle avec tous ces élements , je sens que je suis proche mais je ne trouve pas.

    SVP si quelqu'un peux m'aider ca serait trés gentil parce que je tourne en rond.

    Merci d'avance

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par menakikou Voir le message
    Mon but par exemple est de créer une régle qui m'alerte lorsque dans le code se trouve la méthode toString qui peut être appliquable a une varible ou a tableau de chaine de caractère.
    Je comprend ta règle.

    Citation Envoyé par menakikou Voir le message
    et le fichier XML est générer sous forme d'un AST(Abstract Syntax tree)
    ???

    1) Il n'y a pas de fichier XML généré
    2) Le fichier XML ne représente pas un AST

    Citation Envoyé par menakikou Voir le message
    Ensuite je ne sais pas comment faire, je ne trouve pas de tuto sur le net , je ne sais pas comment créer ma régle avec tous ces élements , je sens que je suis proche mais je ne trouve pas.
    C'est une idée un peu "délirante", mais pourquoi tu n'étudie pas le tutoriel disponible sur le site de pmd et aussi fourni avec la distribution ?

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Points : 52
    Points
    52
    Par défaut [PMD] Regle Designer
    Je te remercie pour ta réponse j'ai donc suivi le tuto ; et je n'arrive toujours pas à créer une régle .
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class a {
    	Factory f1;
    
    	void myMethod() {
    		Factory f2;
    		int a;
    	}
    }
    Le Xpath est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //VariableDeclarator
     [../Type/ReferenceType/ClassOrInterfaceType
      [@Image = 'Factory'] and ..[@Final='false']]
    La régle permet de signaler une erreur lorsque le mot final n'existe pas devant le mot Factory .

    J'ai donc ajouter cette régle dans le PMD rule Desinger , celui ci m'a générer ca :
    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
    class="net.sourceforge.pmd.rules.XPathRule">
      <description>
      
      </description>
      <properties>
        <property name="xpath">
        <value>
    <![CDATA[
    //VariableDeclarator
     [../Type/ReferenceType/ClassOrInterfaceType
      [@Image = 'Factory'] and ..[@Final='false']]
    
    ]]>
        </value>
        </property>
      </properties>
      <priority>3</priority>
      <example>
    <![CDATA[
    public class a {
    	Factory f1;
    
    	void myMethod() {
    		Factory f2;
    		int a;
    	}
    }
    
    
    ]]>
      </example>
    </rule>
    j'ai enregistrer le fichier XML, et je l'ai rajouter dans eclipse preference windows PMD .
    Mais ca ne marche toujours pas j'ai fait des tests avec mon code et rien a faire ca veux pas.
    J'ai donc essayé une autre méthode dans Windows -> preference PMD, creer régle : j'ai mis l'exemple du code Java et le Xpath qui correspond et ca ne marche tjs pas .

    Je ne sais vraiement plus comment faire pour que ca marche , je veux simplement voir comment fonctionne une régle , la mettre en application sur du code, en suite il me suffirait de connaitre le langage Xpath pour pouvoir réaliser des régles plus complexes .

    Mais pour le moment même le basic je n'arrive pas a le faire tourner !

    PLEASE HELP

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    >j'ai enregistrer le fichier XML, et je l'ai rajouter dans >eclipse preference windows PMD .
    >Mais ca ne marche toujours pas j'ai fait des tests avec >mon code et rien a faire ca veux pas.
    >J'ai donc essayé une autre méthode dans Windows -> >preference PMD, creer régle : j'ai mis l'exemple du code >Java et le Xpath qui correspond et ca ne marche tjs pas .

    Déjà peut être test ta règle en dehors de Eclipse pour voir si c'est ta règle qui foire (fonctionne t elle déjà correctement dans le "designer" de PMD ?). Tu peux, en ligne de commande, passer une règle à PMD. Regarde si il crash aussi.

    A la place de :

    J'utiliserais plutôt :

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/05/2012, 11h55
  2. [PMD] Création de régle PMD Rule Desinger
    Par menakikou dans le forum Autres
    Réponses: 0
    Dernier message: 20/10/2009, 09h49
  3. [Ant] [Ejb] Probléme de création d'ejb avec Genic
    Par rivierem dans le forum JOnAS
    Réponses: 7
    Dernier message: 25/06/2004, 16h21
  4. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11
  5. Création d'agrégat avec SQLServer
    Par Testav dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2002, 16h54

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