我在我的项目中使用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时,我获得了一个BUILD SUCCESS,但错误仍然显示在我的目标文件夹中。为什么我在这里获得成功?
答案 0 :(得分:4)
我通过简单地在构建部分添加插件以及报告部分中的插件来解决这个问题。
不知何故,它还需要能够运行所有规则集。之前我的印象是,只有当我们想在构建和部署阶段运行插件时,我们才将插件放在构建中。