2013-02-28 6 views
5

voglio Maven-PMD-plugin per includono set di regole che specificano ed escludere alcune regole (in particolare, UselessParentheses)Impossibile utilizzare set di regole personalizzate a Maven-PMD-plug 5.0.2

proprio come descritti in documentation, ho messo il seguente in pmd.xml che è genitore per tutti i moduli:

<reporting> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-pmd-plugin</artifactId> 
     <version>3.0</version> 
     <configuration> 
      <rulesets> 
      <ruleset>/home/ubuntu/ruleset.xml</ruleset> 
      </rulesets> 
     </configuration> 
     </plugin> 
    </plugins> 
    </reporting> 

e preparato un set di regole personalizzato come questo:

<!-- We'll use the entire rulesets --> 
    <rule ref="rulesets/java/basic.xml"/> 
    <rule ref="rulesets/java/imports.xml"/> 
    <rule ref="rulesets/java/codesize.xml"/> 
    <rule ref="rulesets/java/design.xml"/> 
    <rule ref="rulesets/java/strings.xml"/> 
    <rule ref="rulesets/java/unusedcode.xml"/> 

    <!-- We want everything from this except some --> 
    <rule ref="rulesets/java/unnecessary.xml"> 
    <exclude name="UselessParentheses"/> 
    </rule> 

come parte principale.

Tuttavia, quando corro mvn clean jxr:jxr pmd:check I "UselessParentheses" nei report. Inoltre, in esecuzione con -X mostra

[DEBUG] Preparing ruleset: java-basic 
[DEBUG] Before: java-basic After: java-basic.xml 
[DEBUG] The resource 'rulesets/java/basic.xml' was found as jar:file:/home/ubuntu/.m2/repository/net/sourceforge/pmd/pmd/5.0.2/pmd-5.0.2.jar!/rulesets/java/basic.xml. 
[DEBUG] Preparing ruleset: java-unusedcode 
[DEBUG] Before: java-unusedcode After: java-unusedcode.xml 
[DEBUG] The resource 'rulesets/java/unusedcode.xml' was found as jar:file:/home/ubuntu/.m2/repository/net/sourceforge/pmd/pmd/5.0.2/pmd-5.0.2.jar!/rulesets/java/unusedcode.xml. 
[DEBUG] Preparing ruleset: java-imports 
[DEBUG] Before: java-imports After: java-imports.xml 
[DEBUG] The resource 'rulesets/java/imports.xml' was found as jar:file:/home/ubuntu/.m2/repository/net/sourceforge/pmd/pmd/5.0.2/pmd-5.0.2.jar!/rulesets/java/imports.xml. 

modo che appaia come PMD ignorato il mio set di regole personalizzate.

voglio set di regole personalizzate per lavorare. Che cosa sto facendo di sbagliato?

risposta

5

Hai configurato il Maven-PMD-plug come reporting che è

di riferimento contiene gli elementi che corrispondono specificamente per la fase di generazione sito. Alcuni plugin Maven possono generare report definiti e configurati sotto l'elemento di reporting.

Questo significa che è necessario eseguire il seguente comando: -

mvn clean site 

Se si desidera eseguire come si parla, si prega di copiare la configurazione da builds, per esempio

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-pmd-plugin</artifactId> 
      <version>3.0</version> 
      <configuration> 
       <rulesets> 
        <ruleset>/home/ubuntu/ruleset.xml</ruleset> 
       </rulesets> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Poi, quando si esegue il

mvn clean jxr:jxr pmd:check 

Il risultato dovrebbe essere come previsto. Potete trovare ulteriori informazioni su Maven Pom, here.

Spero che questo possa essere d'aiuto.

Cordiali saluti,

Charlee Ch.

+2

Grazie. Funziona. Ho appena fatto tutto ciò che dicono in [docs] (http://maven.apache.org/plugins/maven-pmd-plugin/examples/usingRuleSets.html) e non ho ottenuto i risultati. Non c'era una sola parola sulla collocazione della configurazione nella sezione "build". –

+0

Ma se si guarda a http://maven.apache.org/plugins/maven-pmd-plugin/usage.html che si vede tutti i luoghi dove si può mettere plug-in dichiarazione ... – gavenkoa

+0

Come per molti Maven plugin, il la documentazione è carente nei dettagli. Trovo questo sconcertante, considerando che è ciò di cui si presume che Maven sia tutto. –