Jenkins远程参数化构建始终使用默认参数值,而不是传递的参数值



我有一个Jenkins作业,它有一个布尔参数。此参数的默认值为false。我通过张贴到构建URL并传递我的令牌和参数,从(另一个作业的)ANT构建脚本远程构建它。

curl -X POST 'MY_JENKINS_SERVER/job/JOB_NAME/buildWithParameters?token=12345;REPORTS=true' --user MY_USERNAME:MY_PASS

请注意,我的URL用单引号括起来(这应该考虑编码问题),布尔参数的名称是REPORTS(大写为Jenkins和ANT)。此外,我想注意的是,如果我使用与号(&)来分隔令牌和我的其他参数,我在构建时会收到以下错误:对实体"REPORTS"的引用必须以";"结尾分隔符。

无论REPORTS参数的值在URL字符串中是什么,在进行构建时,该参数始终是默认值false。我在Jenkins中将默认值更改为true,并且无论传递的参数值如何,它都始终为true。基本上,它总是使用默认值并忽略传递的参数值。我还尝试过不传递REPORTS参数,当然它采用默认值。

在我的作业的构建文件(我正在远程触发的文件)中,我将参数打印为${env.REPORTS}

我在SO上看过类似的问题,但他们的解决方案都不适合我。我试着在URL中移动参数,但似乎什么都不起作用。有什么想法吗?

基于这一行:

对实体"REPORTS"的引用必须以";"结尾定界符

尝试& 而不是&

这不是Jenkins的问题,而是Ant的问题,Ant是一个XML文件。由于&是XML的一个特殊字符,为了在任何地方都有一个&的普通值,您需要将其写为&

相关内容

  • 没有找到相关文章

最新更新