【问题标题】:PMD exclude not workingPMD 排除不工作
【发布时间】:2016-09-29 00:09:17
【问题描述】:

我正在尝试微调我们的 CI,但我不知道如何避免 PMD 报告 src-gen 中生成的代码(不是那里的 Android R 文件)的违规行为:

我使用mvn help:effective-pom 来验证我的配置,POM 看起来我应该这样做。它指向要排除的正确文件夹。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>${pmd-maven-plugin.version}</version>
    <configuration>
        <linkXref>false</linkXref>
        <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
        <minimumTokens>${pmd.minimum.tokens}</minimumTokens>
        <targetJdk>${pmd.target.jdk}</targetJdk>
        <excludes>
            <exclude>**/*R.java</exclude>
            <exclude>**/*Manifest.java</exclude>
            <excludeRoots>
                <excludeRoot>${basedir}/src-gen</excludeRoot>
            </excludeRoots>
        </excludes>

【问题讨论】:

    标签: maven pmd


    【解决方案1】:

    查看PMD plugin Usage doc page 的示例(页面末尾)表明&lt;excludeRoots&gt; 部分应直接位于&lt;configuration&gt; 下,而不是&lt;excludes&gt; 下。

    如果这没有帮助,不妨试试&lt;excludeRoot&gt;**/src-gen/**&lt;/excludeRoot&gt;

    【讨论】:

    • 没错。 excludeRoots 是根配置,不嵌套在exclude 中。 Ant style ** 也不起作用,最重要的是 root 必须是完整的,它似乎被实现为 equals 而不是startsWith,所以例如只有与此完全相同的东西才有效:(这都是当前 3.6 的全部内容。)${basedir}/target/generated-sources/mdsal-binding
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2021-08-20
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多