2013-03-24 77 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>