在pmd排除不工作

时间:2016-06-30 10:09:42

标签: java maven pmd

我无法为PMD进行排除工作。我需要排除以下目录结构中的generated-sources文件夹:

  

mainProject>子项目>目标>生成来源

我已尝试过如下所示的规则集:

src/main/jniLibs

我还浏览了他们的文档和其他堆栈溢出链接,但似乎没有任何帮助。我尝试使用maven-pmd-plugin 3.1& 3.6版本。

尝试了其他选项:

<exclude-pattern>.*/generated-sources/*.java</exclude-pattern>
<exclude-pattern>.*/generated-sources/.*</exclude-pattern>

所有这些更改都在父POM中完成。

2 个答案:

答案 0 :(得分:3)

在您的子pom中,excludeRoots需要匹配compileSourceRoots中列出的完整文件夹名称,例如:

[DEBUG](f)compileSourceRoots = [project / src / main / java,project / target / generated-sources / antlr4,project / target / generated-sources / annotations]

[DEBUG](f)excludeRoots = [project / target / generated-sources / antlr4,project / target / generated-sources / annotations]

孩子中的插件定义看起来像

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <configuration>
                <excludeRoots>
                    <excludeRoot>target/generated-sources/antlr4</excludeRoot>
                    <excludeRoot>target/generated-sources/annotations</excludeRoot>
                </excludeRoots>
            </configuration>
        </plugin>

答案 1 :(得分:1)

您可以使用excludeRoots参数执行此操作。这样可以从PMD报告和后续检查中排除源目录。 Maven batmaan的示例配置为:

subProject