搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

mc1arke/sonarqube-community-branch-plugin

开发工具

为 SonarQube 社区版补充分支分析与 Pull Request 装饰能力的 JAR 插件。

2,903
633
Java
LGPL-3.0
创建于 7 年前

项目介绍

SonarQube 社区版本身不提供分支分析和 Pull Request 装饰,这两项功能属于商业版。这个第三方插件为社区版服务器补上了对应能力:每个分支可以单独扫描,Pull Request 能收到评论和状态提示。

它面向自建 SonarQube 社区版、又希望获得按分支的质量门禁和 PR 反馈的团队。插件同时挂载到服务端与计算引擎进程(通过 Java agent),并替换一部分前端资源。

安装与启动

插件版本与 SonarQube 版本对应:插件 25.4.0 对应 SonarQube 25.4.x。先从发布页选择匹配的版本。

手动安装步骤:

  1. 下载插件 JAR 和对应的 sonarqube-webapp.zip。
  2. 把 JAR 放入 extensions/plugins/。
  3. 在 conf/sonar.properties 的 sonar.web.javaAdditionalOpts 中加入 -javaagent:./extensions/plugins/sonarqube-community-branch-plugin-${version}.jar=web。
  4. 在 sonar.ce.javaAdditionalOpts 中加入同一 agent,参数改为 =ce。
  5. 用 webapp 压缩包内容替换安装目录下的 web 目录。
  6. 启动 SonarQube,并接受第三方插件警告。

也可以使用预构建 Docker 镜像、仓库自带的 docker-compose.yml(需要含 SONARQUBE_VERSION 的 .env),或者官方 SonarQube Helm Chart;README 提供了 values 片段,用 init container 安装 JAR 并解压 webapp。

分支与 PR 分析

先设置 sonar.core.serverBaseURL,否则 PR 评论中的链接不可用。先分析目标分支,再用 sonar.branch.name 扫描功能分支。做 PR 分析时设置 sonar.pullrequest.key、sonar.pullrequest.branch 和 sonar.pullrequest.base,同时不要带任何 sonar.branch.* 参数,否则会被当成普通分支扫描,不会执行 PR 装饰。GitHub 的 PR 扫描还需要把 sonar.scm.revision 设为 PR 的 head SHA。

如果 PR 服务访问不到 SonarQube 服务器,可以在 General > Pull Request 中修改 Images base URL,改为插件自带的静态资源地址,或自行下载并托管这些图片。

使用约束

  • 该插件不受 SonarSource 维护或支持,向官方 SonarQube 渠道提交的插件支持请求可能被关闭。
  • 没有迁移到商业版的受支持路径;使用插件后再迁移,可能因与官方分支功能兼容性未经验证而丢失部分或全部数据。
  • 只有文档给出的插件与 SonarQube 版本组合有保证,旧插件配新服务器或新插件配旧服务器都不保证可用。
  • 在 Docker 中覆盖 SONAR_WEB_JAVAADDITIONALOPTS 或 SONAR_CE_JAVAADDITIONALOPTS 时,必须把 agent 参数一并写进覆盖值。
  • 采用 LGPL-3.0 许可证。

HotRepo 点评

在 2026-11-12 的 Java 周榜上,该项目位列第 18,累计 2,903 Star、633 Fork,当周新增 7 Star。它的存量关注度不小,但周增速不高,符合一个范围明确、装好即用的成熟插件特征:团队通常安装一次,不会反复 Star。更有价值的信号是适用性而非热度——它填补了厂商留给付费版的功能空缺,采用前最需要权衡的是 README 中的版本锁定和迁移风险提示。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。