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

时间:2013-03-24 08:25:24

标签: git maven jenkins sonarqube

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

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

4 个答案:

答案 0 :(得分:19)

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

我不知道如何解决something,因为我不知道你如何配置你的jenkins工作......但它可能会像$git.branch那样。

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

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

<强> P.S。 在阅读你的问题时,很难说你是否正在使用maven来触发声纳。如果您不使用maven:there is a project properties field in the Jenkins config where you can define sonar.branch

答案 1 :(得分:1)

这应该有效

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

如果是的话,你可以很容易地告诉Sonar它是哪个分支,juste在config textarea中添加:

sonar.branch=${branch}

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