在multimodule项目中禁用maven checkstyle,pmd for groovy sources

时间:2013-08-26 19:22:50

标签: java groovy maven-3 checkstyle pmd

我有一个多模块maven项目,我找不到一种方法来禁用pmd,checktyle为groovy源。

我从顶级运行命令:

mvn clean install pmd:pmd checktyle:checkstyle

我的项目结构是:

pom.xml
-module1
 src
   main
      groovy          
   test
      groovy

-module2
 src
   main
      groovy
      java
  test
      groovy

我不希望pmd / checkstyle检查我的groovy文件。 这是 pluginManagement 中的父pom部分:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>2.7.1</version>
    <configuration>
        <format>xml</format>
        <targetJdk>1.6</targetJdk>
        <linkXRef>false</linkXRef>
        <!--
          <excludeRoots>
            <excludeRoot>${project.basedir}/src/main/groovy</excludeRoot>
            <excludeRoot>${project.basedir}/src/test/groovy</excludeRoot>
          </excludeRoots>
        -->
        <!--
        <excludeRoots>
          <excludeRoot>
           ${project.basedir}/target/generated-sources/groovy-stubs
          </excludeRoot>
        </excludeRoots>
        -->
        <excludes>
           <exclude>**/generated-sources/groovy-stubs/**/*.java</exclude>
        </excludes>
      <rulesets>
       <ruleset>
        ${rule.repository.url}/pmd/rules/pmd-rules/1.0.4.2/pmd-rules-1.0.4.2.xml
       </ruleset>
      </rulesets>
     </configuration>
 </plugin>

module1在它的pom.xml中没有任何对pmd / checktyle插件的引用。无论如何,检查风格适用于groovy来源。

module2确实在它的pom.xml中引用了这些插件而且仍然没有忽略groovy。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果使用调试选项(-X)运行Maven,则可以看到PMD-plugin已处理的所有目录。所有目录都列在变量compileSourceRoots中。

您可以使用这些排除来禁用常规存根的PMD:

<excludeRoots>
    <excludeRoot>${project.build.directory}/generated-sources/groovy-stubs/main</excludeRoot>
    <excludeRoot>${project.build.directory}/generated-sources/groovy-stubs/test</excludeRoot>
</excludeRoots>