我已经设置了Jenkins自动构建我的项目的几个git分支。构建还触发声纳分析,作为构建后的操作。使用Jenkins中的多个git分支进行声呐分析
问题是所有分支都指向同一个Sonar项目。我知道有一个sonar.branch属性。是否有可能让Jenkins自动将sonar.branch属性设置为当前正在构建的git分支(而不必更改项目的pom.xml)?
我已经设置了Jenkins自动构建我的项目的几个git分支。构建还触发声纳分析,作为构建后的操作。使用Jenkins中的多个git分支进行声呐分析
问题是所有分支都指向同一个Sonar项目。我知道有一个sonar.branch属性。是否有可能让Jenkins自动将sonar.branch属性设置为当前正在构建的git分支(而不必更改项目的pom.xml)?
您可以尝试在jenkins构建后操作(高级配置)中的字段MAVEN_OPTS中添加-Dsonar.branch=something
。
我不知道如何解决something
,因为我不知道你是如何配置詹金斯的工作......但它可能会像$git.branch
。 Here is the doc
我没有尝试,所以我不知道它会工作。
当具有多个分支,我的做法是始终定义每个分支的一个詹金斯作业(詹金斯的复印作业功能,可以帮助)
编辑
在阅读你的问题很难说,如果你正在使用maven或不触发声纳。如果您未使用maven:Jenkins配置中有一个project properties
字段,您可以在其中定义sonar.branch
。 Here is the doc
我不确定这是否帮助您自动执行Jenkins,但要运行mvn声纳:使用适当的分支设置声纳,您可以运行命令(注意后面的引号),如果您在基于Unix的环境:
mvn -Dsonar.branch=`git rev-parse --abbrev-ref HEAD` sonar:sonar
您是否使用生成参数来指定分支?
如果是的话,你可以很容易地分辨声纳哪个分支是,在中庸之道配置textarea的补充:
sonar.branch=${branch}
哪里分支是构建参数的名称。
这应该工作
mvn sonar:sonar -U -Dsoanr.branch=<branch>
最后我用你的建议,使用不同的作业,每个分支的方法。我确实使用Jenkins触发声纳,因此我为每项作业设置了sonar.branch属性。 我认为这也有一个好处,只有在为这个特定的分支提交时才会触发构建作业,并且还可以为更重要的分支创建更多的细化构建计划控制/通知等。 – spyk 2013-03-25 09:52:24
不适用于我:-( 我在MAVEN_OPTS中添加了$ GIT_BRANCH,当我通过其他工作从其他分支构建时 - 显示覆盖范围的仪表板正在改变为最新分支运行的结果,我希望它对我的分支保持不变。 – R11G 2013-07-05 11:27:58