【问题标题】:Extending SonarQube FindBugs plugin with custom FindBugs plugin使用自定义 FindBugs 插件扩展 SonarQube FindBugs 插件
【发布时间】:2015-11-11 08:32:36
【问题描述】:

我们为 FindBugs 创建了一个自定义插件(为清楚起见:这是一个 findbugs-plugin,而不是 sonar-plugin),我们希望使用我们的自定义 findbugs-plugin 扩展 FindBugs sonar-plugin。

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

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

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

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

【问题讨论】:

  • 为什么不看看如何使用 Java 的 SonarQube 自定义规则来实现您的检查? docs.sonarqube.org/display/DEV/Custom+Rules+for+Java
  • 这是一个选项,但看起来我们必须使用 Sonar API 重新实现所有 FindBugs 检查,而不是重复使用?
  • 很遗憾,您是对的,但我倾向于认为您的代码最终会更加清晰。

标签: java sonarqube findbugs


【解决方案1】:

您的选择是分叉 SonarQube FindBugs plugin 并将您的规则与 Find Security Bugs 规则一起添加(请参阅 this commit),或者创建一个类似于 how Find Security Bugs was handled 的新插件,然后再将其纳入 FindBugs 插件。

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

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

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

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

【讨论】:

猜你喜欢
  • 2021-10-06
  • 2014-08-26
  • 2010-10-04
  • 2015-10-02
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多