长期分支的 Sonarqube 分支结果未按预期显示

Posted

技术标签:

【中文标题】长期分支的 Sonarqube 分支结果未按预期显示【英文标题】:Sonarqube branch results for long-lived branch not showing as expected 【发布时间】:2018-11-24 17:26:31 【问题描述】:

Sonarqube 服务器版本 7.0(内部版本 36138)

Sonarqube 分支插件 7.0(内部版本 413)

声纳-maven-plugin:3.4.0.905

Java 项目

Sonarqube 已经设置了一个 master 分支。

作为 Jenkins 构建作业的一部分,我们执行以下命令:

mvn sonar:sonar -Dsonar.host.url=<our host> -Dsonar.projectName=<project name> -Dsonar.projectKey=<project name> -Dsonar.branch.name=$BRANCH

其中 BRANCH 设置为我们在 Jenkins 中构建的分支名称。

当我们构建“开发”分支时,分析似乎有效,如果开发分支不在 Sonarqube 中并且分析的时间戳在服务器上正确,则会出现,但有两个问题:

1) 我已根据https://docs.sonarqube.org/display/PLUG/Branch+Plugin 中的说明将 SQ 服务器中的长期分支正则表达式修改为:

(分支|发布|开发)-.*

但我只在“开发”分支显示上看到问题和代码选项卡。在詹金斯的工作中,我看到了这样的信息:

[INFO] 分支名称:develop,类型:short living

这让我相信develop并没有被认为是一个长寿的分支。

2) 问题选项卡中没有输出。只有代码选项卡显示任何内容。但是主分支输出显示了 225 个问题,因此我希望开发分支中的问题列表相同(因为它们尚未得到解决)。

问题:

    长寿分支是否显示所有与您相同的输出 正常看到master分支,包括“Overview”?

    我需要做些什么来指定“开发”分支 和上面的maven命令一样长寿?

    知道问题选项卡为什么不显示任何内容吗?

非常感谢, 韦斯

【问题讨论】:

【参考方案1】:

在我看来,您应该首先检查您的正则表达式。您正在使用默认的(branch|release|develop)-.*,请注意您在末尾添加了连字符(-)。 因此,sonar 期望分支名称为 branch-release-develop-。在你的情况下,我认为正则表达式应该是 (branch|release|develop).*

【讨论】:

你救了我!我的英雄...我什至没有看到 - 也不知道为什么这是默认设置。 很高兴它帮助了@jDub9 @Aman 在哪里定义了声纳分支的约定,在我的情况下,我的拉取请求分支名称约定是 PR-.* 但我仍然看到声纳没有扫描并且失败。 @vgdub 你应该在菜单 Branches -> Detection of Long living branches 下找到它。 知道了,在我的用例中,声纳无法正确选择短期 PR(拉取请求)的分支,我的正则表达式有额外的 PR-*,但无法扫描, 【参考方案2】:

您似乎遇到了这个问题: 已经有一张 Jira 票https://jira.sonarsource.com/browse/MMF-1265https://community.sonarsource.com/t/long-lived-branches-quality-gate-does-not-fail-in-first-analysis/175

【讨论】:

以上是关于长期分支的 Sonarqube 分支结果未按预期显示的主要内容,如果未能解决你的问题,请参考以下文章

代码覆盖率结果未使用 sonarqube 中的分支进行更新

Sonarqube 覆盖结果模块名称用法

Github Actions 自动合并未按预期工作

带有分页的可扩展嵌套 Angular 材料数据表未按预期工作?

SonarQube:错误分支分析不能具有拉取请求分析参数“sonar.pullrequest.key”

SonarQube社区版分支插件V1.3.0更新