不包含pmd规则,但由gradle执行

时间:2019-01-12 17:29:25

标签: gradle pmd

gradle-5.1 pmd-plugin

gradle pmdMain会产生很多DataflowAnomalyAnalysis类型的错误,尽管该规则已被明确排除。

来自build.gradle:

plugins {
    id: 'pmd'
}

pmd {
    ignoreFailures = true
    sourceSets = [sourceSets.main]
    reportsDir = file("$project.buildDir/reports/pmd")
    ruleSetFiles = files("config/pmd/ruleset.xml")
}

来自ruleset.xml(仅适用于规则):

< rule ref="category/java/errorprone.xml">
    < exclude name="DataflowAnomalyAnalysis"/>
< /rule>

我该如何真正排除该规则?

1 个答案:

答案 0 :(得分:5)

Gradle PMD Plugin具有两个用于配置规则的属性:

  • ruleSetFiles
  • 规则集

属性ruleSets在默认情况下启用了两个规则集(容易出错和最佳实践)。

为了仅执行ruleSetFiles中指定的规则,您需要将ruleSets显式设置为一个空列表,例如

pmd {
    ignoreFailures = true
    sourceSets = [sourceSets.main]
    reportsDir = file("$project.buildDir/reports/pmd")
    ruleSetFiles = files("config/pmd/ruleset.xml")
    ruleSets = []
}