mc1arke/sonarqube-community-branch-plugin
开发工具为 SonarQube 社区版补充分支分析与 Pull Request 装饰能力的 JAR 插件。
项目介绍
SonarQube 社区版本身不提供分支分析和 Pull Request 装饰,这两项功能属于商业版。这个第三方插件为社区版服务器补上了对应能力:每个分支可以单独扫描,Pull Request 能收到评论和状态提示。
它面向自建 SonarQube 社区版、又希望获得按分支的质量门禁和 PR 反馈的团队。插件同时挂载到服务端与计算引擎进程(通过 Java agent),并替换一部分前端资源。
安装与启动
插件版本与 SonarQube 版本对应:插件 25.4.0 对应 SonarQube 25.4.x。先从发布页选择匹配的版本。
手动安装步骤:
- 下载插件 JAR 和对应的
sonarqube-webapp.zip。 - 把 JAR 放入
extensions/plugins/。 - 在
conf/sonar.properties的sonar.web.javaAdditionalOpts中加入-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-${version}.jar=web。 - 在
sonar.ce.javaAdditionalOpts中加入同一 agent,参数改为=ce。 - 用 webapp 压缩包内容替换安装目录下的
web目录。 - 启动 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 生成,更新于 ,以项目官方文档为准。