2013-03-24 73 views
8

我已经设置了Jenkins自动构建我的项目的几个git分支。构建还触发声纳分析,作为构建后的操作。使用Jenkins中的多个git分支进行声呐分析

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

回答

18

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

我不知道如何解决something,因为我不知道你是如何配置詹金斯的工作......但它可能会像$git.branchHere is the doc

我没有尝试,所以我不知道它会工作。

当具有多个分支,我的做法是始终定义每个分支的一个詹金斯作业(詹金斯的复印作业功能,可以帮助)

编辑

在阅读你的问题很难说,如果你正在使用maven或不触发声纳。如果您未使用maven:Jenkins配置中有一个project properties字段,您可以在其中定义sonar.branchHere is the doc

+1

最后我用你的建议,使用不同的作业,每个分支的方法。我确实使用Jenkins触发声纳,因此我为每项作业设置了sonar.branch属性。 我认为这也有一个好处,只有在为这个特定的分支提交时才会触发构建作业,并且还可以为更重要的分支创建更多的细化构建计划控制/通知等。 – spyk 2013-03-25 09:52:24

+0

不适用于我:-( 我在MAVEN_OPTS中添加了$ GIT_BRANCH,当我通过其他工作从其他分支构建时 - 显示覆盖范围的仪表板正在改变为最新分支运行的结果,我希望它对我的分支保持不变。 – R11G 2013-07-05 11:27:58

0

我不确定这是否帮助您自动执行Jenkins,但要运行mvn声纳:使用适当的分支设置声纳,您可以运行命令(注意后面的引号),如果您在基于Unix的环境:

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

您是否使用生成参数来指定分支?

如果是的话,你可以很容易地分辨声纳哪个分支是,在中庸之道配置textarea的补充:

sonar.branch=${branch} 

哪里分支是构建参数的名称。

0

这应该工作

mvn sonar:sonar -U -Dsoanr.branch=<branch>