3

我在我的项目中使用 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 但错误仍然出现在我的目标文件夹中。为什么我在这里构建成功?

4

1 回答 1

4

我通过简单地将插件添加到构建部分以及报告部分中的插件来解决这个问题。

不知何故,它也需要能够运行所有规则集。之前我的印象是,只有当我们想在构建和部署阶段运行它们时,我们才会将插件放入构建中。

于 2011-12-06T05:29:42.117 回答