通过jenkins的参数传递scm标记值

时间:2012-05-11 21:38:38

标签: maven hudson jenkins

我可以为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>

问题是当我与另一个分支运行并希望由jenkins运行发布时(在发布过程中,它生成项目的标记)它总是会获得在pom中定义的值。

我会在Jenkins的特定参数中传递一条新路径,该路径会自动在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.

有没有办法做到这一点,我可以告诉詹金斯?

2 个答案:

答案 0 :(得分:1)

我注意到为SCM连接定义的属性不正确。在命令行上设置SCM连接的属性是-Dproject.scm.connection,开发人员连接是-Dproject.scm.developerConnection

答案 1 :(得分:1)

根据MRELEASE-707,属性connectiondeveloperConnection是只读的,无法直接设置。您必须为网址定义自己的属性并将其用作占位符(请参阅:How to override maven property in command line?)。