我有一个多模块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。
我做错了什么?
答案 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>