使用Gradle的FindBugs插件与fb-contrib库

7
有没有可能将 fb-contrib 库与 Gradle 的 FindBugs 插件 集成?我已经寻找解决方案一段时间了,但目前还没有找到任何可行的方法...
如果有帮助的话,这是我现在拥有的脚本。它还在不断完善中,但报告已经生成正确。
apply plugin: "findbugs"

task findbugs(type: FindBugs) {

    classes = fileTree(project.rootDir.absolutePath).include("**/*.class");
    source = fileTree(project.rootDir.absolutePath).include("**/*.java");
    classpath = files()

    findbugs {
            toolVersion = "2.0.3"
            ignoreFailures = true
            effort = "max"
            reportLevel = "low"
            reportsDir = file("${projectDir}/reports/findbugs")
            sourceSets = [it.sourceSets.main, it.sourceSets.test]
    }

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

感谢您提前提供任何答案。
2个回答

6
我刚遇到了同样的问题。我按照以下方式解决了它:
apply plugin: 'findbugs'

dependencies {
    // We need to manually set this first, or the plugin is not loaded
    findbugs 'com.google.code.findbugs:findbugs:3.0.0'
    findbugs configurations.findbugsPlugins.dependencies

    // To keep everything tidy, we set these apart
    findbugsPlugins 'com.mebigfatguy.fb-contrib:fb-contrib:6.0.0'
}

task findbugs(type: FindBugs) {
   // Add all your config here ...

   pluginClasspath = project.configurations.findbugsPlugins
}

希望能帮到您!您可以通过在findbugsPlugins依赖项下添加插件来增加更多的Findbugs插件。

如果我这样做。例如:task findbugs(type: FindBugs) { toolVersion = "3.0.1" ... pluginClasspath = project.configurations.findbugsPlugins } 我会得到“No such property: toolVersion for class: org.gradle.api.plugins.quality.FindBugs_Decorated”的错误提示。 - Kutzi
@Kutzi toolVersion 不是一个任务属性。您需要使用 findbugs { toolVersion = "3.0.1" } 全局定义该属性。请查看原始问题以获取示例。 - Johnco

3
如果您将fb-contrib.jar放在Findbugs的插件目录中,我认为它应该会自动被捕获。虽然我从未尝试过Gradle。

1
findbugs.jar 会自动通过 Maven 中央仓库获取:repositories { mavenCentral() }。将 fb-contrib.jar 手动添加到 findbugs.jar 所在的文件夹似乎不会改变输出结果。奇怪的是,如果我在上面的脚本中添加一个 Maven 依赖项... dependencies { findbugs 'com.mebigfatguy:fbcontrib:3.4.2-hudson-1' } ...构建过程似乎会在执行“findbugs”进程时卡住。你认为旧版本的 fb-contrib.jarfindbugs.jar v2.0.3 之间存在某种不兼容性吗? - DPR
为什么使用这么旧的版本?尝试使用5.0.3。 - MeBigFatGuy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接