2012-05-11 35 views
7

我可以傳遞Jenkins的scm參數值嗎?jenkins通過參數傳遞scm標籤值

在我的pom.xml中,我設置爲默認值:

<scm> 
    <connection> scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_A/ </ connection> 
    <developerConnection>scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_A/</developerConnection> 
</ scm> 

問題是,當我與另一個分支運行,並且要運行詹金斯釋放(在釋放的過程中,它會生成項目的標籤)它總是會得到在pom中定義的值。

我會通過在一個詹金斯參數especific自動將SCM POM項目中設置了一條新路。

我做了一些測試,通過在參數設置建築物字符串參數,但他不承認給定的參數和錯誤的建設。

另一種方式是通過「發佈目標和選項」:

-X -Dresume=false release:clean release:prepare release:perform \ 
    -DscmConnection="scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_B"-DscmDeveloperConnection = "scm: svn: https ://172.10.10.30/svn/repPortal/branches/2012/Branch_B "scm: validate 

錯誤依然存在...

Caused by: org.apache.maven.shared.release.ReleaseFailureException: 
    Missing required setting: scm connection or developerConnection must be specified. 

有沒有辦法做到這一點,這樣我可以告訴通過Jenkins?

回答

1

我注意到爲SCM連接定義的屬性不正確。用於在命令行上設置SCM連接的屬性爲-Dproject.scm.connection,開發人員連接爲-Dproject.scm.developerConnection

+0

所以,我想在我的詹金斯以下指令,但它doesn't修改我的pom.xml中定義的SCM標籤:-X -Dresume =虛假髮布:乾淨發佈:準備發佈:執行-Dproject.scm.connection = SCM:SVN:HTTPS://172.10.10.30/svn/repPortal/branches/2012/Branch_B -Dproject.scm.developerConnection = SCM:SVN:HTTPS://172.10.10.30/svn/repPortal/branches/2012/Branch_B 是否有其他方法來重寫設置? – ricardo

+0

在同一命令中添加沒有'release:執行'的'-DryRun = true'。看看Maven創建的中間POM。他們看起來是否正確?另外,考慮在沒有Jenkins的情況下在命令行上運行這個dryRun命令,你會得到相同的結果嗎?最後但並非最不重要的一點,'maven-release-plugin' 2.3版本昨天發佈了,他們做了一些與SCM使用相關的修復,這可能也有幫助。 – user944849