如何从 Gradle 中的 Findbugs 插件生成 XML 和 HTML 报告

kel*_*yfj 5 findbugs gradle

现在我的 build.gradle 中有 FindBugs,如下所示

 apply plugin: 'findbugs'
        findbugs {
            ignoreFailures = true
        }
        tasks.withType(FindBugs) {
            reports {
                xml.enabled = false
                html.enabled = true
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试同时启用 HTML 报告(供开发人员在他们的机器上查看)和 XML 报告(用于我的 jenkins CI 机器),我会得到以下结果

FindBugs 任务只能启用一份报告,但启用了不止一份报告。您需要禁用除其中之一之外的所有功能。

有什么方法/技巧可以让我同时生成两者 - 即使是通过两个不同的任务?

Pat*_* M. 2

您可能可以,但在插件的当前状态下,您似乎必须定义一项从 FindBugs 扩展的单独任务,但具有与标准任务不同的配置。问题是您确实会运行 FindBugs 两次,这对于任何大小合适的代码库来说都可能会造成性能损失。

显然你不能用来tasks.withType(FindBugs) { ... }配置你的任务,你必须明确地通过任务名称来完成它。

注意:如果您在 Jenkins 等上运行,您会希望 build.gradle 生成 xml 报告,并让 Jenkins 从 xml 生成 html 报告。这样它就不会在您的构建中执行两次。