我希望maven-pmd-plugin包含我指定的规则集并排除某些规则(特别是UselessParentheses)
就像documentation中所描述的那样,我将以下内容放在pmd.xml中,该文件是所有模块的父级:
<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>
并准备了一个自定义规则集,如下所示:
<!-- 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>
作为主要部分。
然而,当我运行mvn clean jxr:jxr pmd:check
时,我在报告中有“UselessParentheses”。此外,使用-X
运行
[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.
所以看起来pmd忽略了我的自定义规则集。
我希望自定义规则集能够正常运行。我做错了什么?
答案 0 :(得分:5)
您已将 maven-pmd-plugin 配置为reporting
报告包含专门针对 网站生成阶段 的元素。某些Maven插件可以生成在报告元素下定义和配置的报告。
这意味着您应该使用以下命令执行: -
mvn clean site
如果您想按照提及执行,请将您的配置复制到builds,例如
<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>
然后执行
mvn clean jxr:jxr pmd:check
结果应符合您的预期。你可以找到关于Maven Pom的更多信息,here。
我希望这可能有所帮助。
此致
Charlee Ch。