You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube Enterprise 8.7版本下,如何在Jenkins UI中显示已扫描分支名称

解决SonarQube 8.7与Jenkins集成时分支名称显示问题的思路

我之前维护SonarQube和Jenkins集成环境时,也碰到过类似的分支信息不显示的问题,结合SonarQube 8.7的特性和Jenkins集成经验,给你几个可行的解决方向:

1. 确认Jenkins SonarQube插件的兼容性与配置

  • 首先检查Jenkins上的SonarQube Scanner插件版本,SonarQube 8.7需要搭配兼容的插件版本(推荐2.14及以上),插件版本不匹配很可能导致分支信息无法同步到Jenkins UI。你可以在Jenkins的「插件管理」中查看并升级插件到对应兼容的稳定版本。
  • 同时确保Jenkins中SonarQube服务器的配置里,「Server authentication token」已经正确配置,且该token对应的SonarQube账号拥有项目分支的读取权限。

2. 显式传递分支参数给SonarQube扫描任务

SonarQube 8.7不再默认自动获取分支名称,需要在扫描时显式指定:

  • 如果是自由风格Jenkins任务,在SonarQube Scanner的「Additional arguments」中添加:
    sonar.branch.name=${BRANCH_NAME}
    这里的${BRANCH_NAME}是Jenkins多分支项目自动注入的环境变量,如果是普通任务,需要手动定义分支名称的环境变量或者直接替换为实际分支名。
  • 如果是Jenkinsfile流水线,在扫描步骤中传入分支参数:
    stage('SonarQube 代码扫描') {
        steps {
            withSonarQubeEnv('你的SonarQube服务器名称') {
                sh 'sonar-scanner -Dsonar.branch.name=${BRANCH_NAME}'
            }
        }
    }
    

3. 配置SonarQube的分支可见性与Webhook

  • 登录SonarQube,进入对应项目的「项目设置」→「分支」,确保目标分支的「Visibility」设置为Public(或对应权限组能访问),否则Jenkins无法获取到分支信息。
  • 配置SonarQube的Webhook,指向Jenkins的回调地址:http://<你的Jenkins地址>/sonarqube-webhook/。扫描完成后SonarQube会通过Webhook把分支结果同步回Jenkins,确保Webhook的请求状态正常(可以在SonarQube的Webhook页面查看日志)。

4. 调整Jenkins任务的显示配置

  • 对于多分支流水线项目,在Jenkins视图配置中,添加「SonarQube Quality Gates」列,这个列会展示SonarQube的扫描结果,同时附带分支名称信息。
  • 自由风格项目可以安装SonarQube Quality Gate Plugin,安装后会在构建详情页面显示SonarQube的扫描结果卡片,其中包含分支名称。

5. 排查版本特性变更

SonarQube 8.7对分支管理功能做了权限和配置上的收紧,旧版本默认开启的分支同步逻辑在新版本需要显式配置。你可以核对SonarQube 8.7官方文档中分支集成的相关说明,确保所有必要配置项都已正确设置。

内容的提问来源于stack exchange,提问作者Hammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:12:35