长期分支的 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 分支结果未按预期显示的主要内容,如果未能解决你的问题,请参考以下文章
带有分页的可扩展嵌套 Angular 材料数据表未按预期工作?