我在我的项目中使用 maven-pmd-plugin,这就是我配置它的方式
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.6</version>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>UTF-8</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>${targetJdk}</targetJdk>
<rulesets>
<ruleset>${maven.pmd.rulesetfiles}</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
这里是上面配置中用到的属性
<properties>
<spring.version>3.0.6.RELEASE</spring.version>
<basedir>C:\Users\Q4\workspace\project</basedir>
<maven.pmd.rulesetfiles>${basedir}\pmdRuleset.xml</maven.pmd.rulesetfiles>
<targetJdk>1.5</targetJdk>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
问题是当我运行 mvn pmd:check 时,它给了我 8 个违规——仅来自基本的、未使用的代码和导入。它根本不使用我在自定义规则集文件中列出的所有规则。我什至尝试在规则集中直接使用 logging-java.xml 和 strings.xml,而不使用自定义规则集文件,但它仍然不起作用。
当我运行 mvn pmd:pmd 时,我获得了构建成功,但错误仍然出现在我的目标文件夹中。为什么我在这里获得构建成功?
最佳答案
我通过简单地在构建部分中添加插件以及报告部分中的插件来解决这个问题。
不知何故,它也需要能够运行所有规则集。早些时候我的印象是,只有当我们想在构建和部署阶段运行插件时,我们才会将插件放入构建中。
关于maven-plugin - maven-pmd-plugin 仅使用捆绑的规则集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389612/