2013-02-28 12 views
5

Ich möchte Maven-pmd-Plugin rulesets enthalten verwenden, die ich einige Regeln festlegen und schließen (insbesondere UselessParentheses)Kann benutzerdefinierte ruleset in Maven-pmd-Plugin 5.0.2

Just in documentation beschrieben mag, ich legte die folgende in pmd.xml, die Eltern für alle Module ist:

<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> 

und bereitete eine benutzerdefinierte ruleset wie mit diesem:

<!-- 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> 

als Hauptteil.

Trotzdem, wenn ich mvn clean jxr:jxr pmd:check laufen habe ich die "UselessParentheses" in Berichten. Darüber hinaus ist es mit -X Lauf zeigt

[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. 

So sieht es aus wie pmd meine Gewohnheit ruleset ignoriert.

Ich möchte benutzerdefinierte Regelsatz arbeiten. Was mache ich falsch?

Antwort

5

Sie haben konfiguriert ist, die maven-PMD-Plugin- als reporting die

Berichterstattung ist enthält die Elemente, die speziell für der Standort Erzeugungsphase entsprechen. Bestimmte Maven-Plugins können Berichte generieren, die unter dem Berichtselement definiert und konfiguriert sind.

Dies bedeutet, dass Sie mit dem folgenden Befehl ausgeführt werden soll: -

mvn clean site 

Wenn Sie, wie Sie ausführen möchten, geben Sie bitte Ihre configure builds kopieren, zum Beispiel

<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> 

Wenn Sie dann den

mvn clean jxr:jxr pmd:check 

ausführen Das Ergebnis sollte Ihre erwartete wie. Sie können weiter über Maven Pom, here finden.

Ich hoffe, dass dies helfen kann.

Grüße,

Charlee Ch.

+2

Vielen Dank. Es klappt. Ich habe einfach alles gemacht, was sie in [docs] (http://maven.apache.org/plugins/maven-pmd-plugin/examples/usingRuleSets.html) gesagt haben und habe die Ergebnisse nicht erhalten. Es gab kein einziges Wort über das Platzieren der Konfiguration in "Build". –

+0

Aber wenn Sie auf http://maven.apache.org/plugins/maven-pmd-plugin/usage.html schauen, sehen Sie alle Orte, wo Sie Plug-in-Deklaration setzen können ... – gavenkoa

+0

Wie bei vielen Maven-Plugins, die Dokumentation fehlt im Detail. Ich finde das verwirrend, wenn man bedenkt, dass es um Maven geht. –