如何使用 gradle 脚本生成 findbugs 报告?

How to generate findbugs reports using gradle script?

我正在尝试使用 findbugs 插件生成报告,我在下面写了 gradle script.I 我正在设置报告的目标文件夹,但相应的文件夹没有得到 generated.So,如何解决这个问题。

我可以使用导出按钮手动生成报告,但我想从 gradle 脚本生成。

是否可以从 gradle 脚本生成报告?

我的 gradle 版本 - 2.2.1

task findbugs(type: FindBugs) {
    ignoreFailures = true
    effort = "max"
    reportLevel = "high"
    classes = files("${project.buildDir}/findbugs")
    source 'src'
    include '**/*.java'
    exclude '**/gen/**'

    reports {
        xml.enabled = true
        xml {
            destination "$project.buildDir/reports/findbugs/findbugs.xml"
            xml.withMessages true
        }
    }
    classpath = files()
}

我设法通过以下 gradle 脚本片段找到 运行 最新 gradle 的 findbugs:

apply plugin: 'findbugs'

task customFindbugs(type: FindBugs) {
    ignoreFailures = true
    effort = "default"
    reportLevel = "medium"
    classes = files("$project.buildDir/intermediates/classes")
    excludeFilter = file("$rootProject.rootDir/config/findbugs/exclude.xml")

    source = fileTree('src/main/java/')
    classpath = files()
    reports {
        xml.enabled = false
        xml.withMessages = true
        html.enabled = !xml.isEnabled()
        xml.destination "$project.buildDir/outputs/findbugs/findbugs-output.xml"
        html.destination "$project.buildDir/outputs/findbugs/findbugs-output.html"
    }
}
// UPDATE: renamed the task to customFindbugs and made it automatically be called when build is called
build.dependsOn customFindbugs

我的 exclude.xml 如下所示:

<FindBugsFilter>
    <Match>
       <Class name="~.*R$.*"/>
    </Match>
    <Match>
        <Class name="~.*Manifest$.*"/>
    </Match>
    <Match>
        <Class name="~.*_$.*"/>
    </Match>
</FindBugsFilter>

而最后一次检查用于省略由 AndroidAnnotations 生成的 类,您很可能不会使用此检查...

之后我可以 运行

完成任务
./gradlew customFindbugs

或者自从

更新了我的代码
./gradlew build