使用curl带额外参数触发Jenkins构建不生效如何解决?
Jenkins curl携带参数构建不生效的解决方案
问题根因
你当前的问题核心是接口类型和传参格式不匹配:buildWithParameters接口不需要嵌套json结构,仅需要直接传递参数键值对,json格式的参数是给/build接口使用的,因此参数无法被识别,Jenkins自动使用了默认值。
可行解决方案
- 方案1:使用
buildWithParameters接口直接传递键值对(推荐)
直接传递参数名和对应值即可,调整后命令如下:curl -X POST --user "${userName}:${password}" -H "Jenkins-Crumb:33c13aed5548ad43bf5e2eb276cf21af" "JENKINS_URL/job/JOB_NAME/buildWithParameters" --data-urlencode "text=develop:test" - 方案2:使用
/build接口配合json格式传参
如果你需要使用json结构传递多个参数,需要将请求接口改为/build而非buildWithParameters,调整后命令如下:curl -X POST --user "${userName}:${password}" -H "Jenkins-Crumb:33c13aed5548ad43bf5e2eb276cf21af" "JENKINS_URL/job/JOB_NAME/build" --data-urlencode json='{"parameter": [{"name":"text", "value":"develop:test"}]}' - 额外校验点(如果调整后仍不生效可排查)
- 确认Job中配置的参数名和你传递的
text完全一致,无大小写、拼写错误 - 确认当前请求使用的账号有「带参数构建项目」的权限
- 确认请求携带的Jenkins-Crumb有效,未过期
- 确认Job中配置的参数名和你传递的
内容的提问来源于stack exchange,提问作者logbasex
相关产品推荐
相关产品推荐

