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

Ant Jenkins远程参数化构建始终使用默认参数值,而不是传递的参数值,ant,parameters,jenkins,default-value,Ant,Parameters,Jenkins,Default Value,我有一个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(Jenkin

我有一个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”的引用必须以“;”结尾定界符

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

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

我已经研究过类似的问题,但他们的解决方案都不适合我。我尝试在URL中移动参数,但似乎没有任何效果。有什么想法吗?

基于这句话:

对实体“报告”的引用必须以“;”结尾分隔符

不要使用
&
,而应尝试使用
&


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

谢谢。我真不敢相信事情会这么简单。但是为什么它需要用&;编码呢;?除非我弄错了,否则参数化的构建文档似乎暗示引用URL并不需要转义它。我不知道你的情况。对我来说,使用单引号和双引号,直截了当的
?token=12345&REPORTS=true
工作起来没有任何问题。但我在其他地方遇到了一个问题,出现了完全相同的错误消息。对我来说,它将
&
作为文本包含在XML文件中(从ANT执行命令行),解决方案是
&等一下。。。我重读了你的问题。您正在从ANT脚本启动
curl
,因此您的问题与我的问题完全相同。这是一个XML的东西,与Jenkins无关。可能是