Spotbugs 在 gradle 项目中排除过滤器

Yoa*_* E. 6 java findbugs gradle spotbugs

我是 gradle 新手,正在尝试配置 Spotbugs。我已将该插件添加到 build.gradle 中,并且出现了 Spotbugs 问题。不过,我想排除 Findbugs EI_EXPOSE_REP 和 EI_EXPOSE_REP2 规则,因为它们会出现在我的所有 getter 和 setter 中。我在 build.gradle 中有以下代码片段:

apply plugin: 'java'
apply plugin: 'com.github.spotbugs'
apply plugin: 'findbugs'

spotbugs {
    toolVersion = '5.0.0'
}

tasks.withType(SpotBugsTask) {
    reports {
        xml.enabled = false
        html.enabled = true
    }
}

findbugs {
    excludeFilter = file("$rootProject.projectDir/config/findbugs/excludeFilter.xml")
    toolVersion = "3.0.1"
    effort = "max"
}
Run Code Online (Sandbox Code Playgroud)

exceptFilter.xml 包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
        <Bug pattern="EI_EXPOSE_REP"/>
    </Match>
    <Match>
        <Bug pattern="EI_EXPOSE_REP2"/>
    </Match>
</FindBugsFilter>
Run Code Online (Sandbox Code Playgroud)

我还尝试添加排除,如下所示:

tasks.withType(FindBugs) {
    excludeFilter = file("$rootProject.projectDir/config/findbugs/excludeFilter.xml")
}
Run Code Online (Sandbox Code Playgroud)

但它没有成功,所以可能我错过了一些东西。

小智 2

尝试将排除过滤器添加到 Spotbugs 配置而不是 findbugs:所以你应该尝试:

spotbugs {
    toolVersion = '5.0.0'
    excludeFilter.set(file("${spotbugsConfigDir}/excludeFilter.xml"))
}
Run Code Online (Sandbox Code Playgroud)