使用自定义 FindBugs 插件扩展 SonarQube FindBugs 插件

Extending SonarQube FindBugs plugin with custom FindBugs plugin

我们为 FindBugs 创建了一个自定义插件(为清楚起见:这是一个 findbugs 插件,而不是声纳插件),我们想用我们的自定义 findbugs 插件扩展 FindBugs 声纳插件。

目前我们使用 SonarQube 5.1 和 FindBugs sonar-plugin 3.2。

因为我们的自定义 findbugs-plugin 是 FindBugs 的有效插件,我们认为激活它的最直接方法是使用我们现有 sonar-plugin 中 FindBugs 实例的插件系统,但我们无法了解如何以这种方式激活我们的 findbugs-plugin。

我们还尝试创建一个 rules.xml 并将我们的 jar 放在 sonar_home/extensions/rules/findbugs 中,如 https://jira.sonarsource.com/browse/SONAR-1481 中所述,但这似乎不适用于我们正在使用的 FindBugs sonar-plugin 版本使用。

配置我们的 SonarQube 版本以获取我们的自定义 FindBugs 插件的正确方法是什么?我们需要采取哪些步骤?

您的选择是在将 SonarQube FindBugs plugin and adding your rules alongside the Find Security Bugs rules (see this commit), or creating a new plugin similar to how Find Security Bugs was handled 整合到 FindBugs 插件之前对其进行分叉。

在任何一种情况下,您都将在 pom.xml 中将您的 jar 列为依赖项,提供您已经创建的 rules.xml,并添加 repository definition.

如果你走独立的路线,这可能更好,你需要

  1. 等待 5.2 中的错误修复
  2. 使用 FindBugs 存储库密钥。请参阅 this commit 的 'before' 一侧。
  3. 提供所需的basic plugin plumbing

编辑:编辑以添加提交链接并扩展独立路由的要求。