繁体   English   中英

在 Jenkins 中使用多个 git 分支进行声纳分析

[英]Sonar analysis using multiple git branches in Jenkins

我已经设置 Jenkins 来自动构建我项目的几个 git 分支。 构建还会触发声纳分析,作为构建后的操作。

问题是所有分支都指向同一个 Sonar 项目。 我知道有一个 sonar.branch 属性。 是否可以让 Jenkins 自动将 sonar.branch 属性设置为正在构建的当前 git 分支(无需更改项目的 pom.xml)?

您可以尝试在 jenkins 构建后操作(高级配置)的字段 MAVEN_OPTS 中添加-Dsonar.branch.name=something

我不something如何解决问题,因为我不知道你如何配置你的詹金斯工作......但它可能会像$git.branch

我没有尝试,所以我不确定它是否会起作用。

在 Jenkins 多分支管道中,变量是BRANCH_NAME

PS在阅读您的问题时,很难说您是否使用 Maven 来触发声纳。 如果您不使用 maven: Jenkins 配置中有一个project properties字段,您可以在其中定义sonar.branch

这应该工作

mvn sonar:sonar -U -Dsonar.branch.name=$BRANCH_NAME

我不确定这是否有助于您自动执行 Jenkins,但是要运行具有正确分支集的 mvn sonar:sonar,如果您在基于 Unix 的环境中,您可以运行命令(注意反引号):

mvn -Dsonar.branch=`git rev-parse --abbrev-ref HEAD` sonar:sonar

您是否使用构建参数来指定分支?

如果是,您可以轻松地告诉 Sonar 它是哪个分支,只需在配置文本区域中添加:

sonar.branch=${branch}

其中 branch 是构建参数的名称。

为了实现这一点,我通常使用-Dsonar.branch.name=${env.CHANGE_BRANCH}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM