curl - 通过 cURL 远程触发 Maven 发布
问题描述
关于https://stackoverflow.com/a/52371428/2428979的答案
curl -v -g -X POST 'jenkins.url.com/job/UAT/m2release/submit?json{"parameter": [{"name":"ENVIRONMENT", "value":"uat"}, {"name":"MVN_RELEASE_VERSION", "value":"5.23.0-RC2"}, {"name":"MVN_DEV_VERSION", "value":"5.23.0-SNAPSHOT"}, {"name":"MVN_ISDRYRUN", "value":"true"}]}' --user myusername:mypassword
使用上面的 curl 请求,我在终端上收到以下错误以及 html/css 响应,请告知。
我尝试了命令的各种组合,例如添加删除标志和修改发布数据、参数等,但错误仍然一致。
java.lang.NullPointerException
at org.jvnet.hudson.plugins.m2release.M2ReleaseAction.getString(M2ReleaseAction.java:318)
at org.jvnet.hudson.plugins.m2release.M2ReleaseAction.doSubmit(M2ReleaseAction.java:223)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:734)
解决方案
嘿@SagarSammy 我相信问题出在此调用的查询参数缺失。你应该指定一些其他的强制性查询参数,除了只是json
请求中必须存在一些强制性查询参数,请查看 -> https://github.com/jenkinsci/m2release-plugin/blob/master/src/main/java/org/jvnet/hudson/plugins /m2release/M2ReleaseAction.java#L223
json
查询参数将通过代码处理得更低一些-> https://github.com/jenkinsci/m2release-plugin/blob/master/src/main/java/org/jvnet/hudson/plugins/m2release/M2ReleaseAction.java #L235
看看对我来说成功的例子:
curl -X POST \
'https://username:token@{your-jenkins-host}/job/some-job/m2release/submit?releaseVersion=2.1.2
&developmentVersion=2.1.3-SNAPSHOT
&isDryRun=on
&scmUsername={your-scm-username}
&scmPassword={your-scm-pwd}
&scmCommentPrefix=[test]
&json={"parameter": {"name":"CUSTOM_PARAM_NAME1", "value": "CUSTOM_PARAM_VAlUE2"},
"parameter": {"name":"CUSTOM_PARAM_NAME2", "value": "CUSTOM_PARAM_VAlUE2"}}
&Submit=Schedule Test Maven Release Build \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Jenkins-Crumb: {your-generated-crumb}'
我希望这能帮到您。
推荐阅读
- github - 我们如何使用 GitHub Rest API 使用模板在 GitHub 中创建包含其他存储库内容的存储库
- javascript - 如何在打字稿中使用静态键和动态键定义模型
- youtube - GStreamer 和 Youtube 问题 RTMPSink 无法写入资源
- typescript - VS Code 未内联显示 Typescript 错误
- javascript - Discord.js - 日期状态
- hive - 最大分区列的 Hive 计数元素
- api - 如何记录 REST API 的使用/消耗?
- javascript - 使用 onError 渲染函数
- html - jQuery淡入然后从innerHTML淡出文本不起作用
- firebase - 如何为在网络图像中返回字符串的函数调用 await 以及如何使用 if 语句根据输出决定不同的小部件