I want maven-pmd-plugin to include rulesets that I specify and exclude some rules (specifically, UselessParentheses)
Just like described in documentation, I placed the following in pmd.xml that is parent for all modules:
<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>
and prepared a custom ruleset like with this:
<!-- 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>
as a main part.
Nevertheless, when I run mvn clean jxr:jxr pmd:check
I have the "UselessParentheses" in reports. Moreover, running it with -X
shows
[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 it looks like pmd ignored my custom ruleset.
I want custom ruleset to work. What am I doing wrong?