[英]Jenkins pipeline writeJSON throwing AccessDeniedException
[英]Jenkins Pipeline is throwing Illegal Arugment exception
我正在创建一个管道并行套件作业,它将通过传递的参数触发其他独立作业。 但是管道执行后会抛出非法的参数异常。 使用的代码是将4个参数传递给创建并放置在同一文件夹下的作业。
使用的脚本:
node{
environment_url=DeploymentEnvmt
BrowserName=Browse
parallel (
{
build job: 'test_job', parameters: [[$class: 'StringParameterValue',name: 'baseUrlFromDeploymentJob', value: "$environment_url"],[$class: 'StringParameterValue', name: 'dynamicHubUrlTarget', value: "http://test.x.x.x/wd/hub"],[$class: 'StringParameterValue', name: 'reDirectHubUrlVal', value: "yes"],[$class: 'StringParameterValue', name: 'Browser', value: "$BrowserName"]] })
例外:
java.lang.IllegalArgumentException: Expected named arguments but got org.jenkinsci.plugins.workflow.cps.CpsClosure2@d78a0b
at org.jenkinsci.plugins.workflow.cps.DSL.singleParam(DSL.java:542)
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:530)
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:470)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:183)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:153)
at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)
at sun.reflect.GeneratedMethodAccessor493.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
请帮助解决非法参数异常错误。 关于语法需要纠正的内容
它必须是Map<String, Closure>
,而不是闭包。 这将对您有所帮助。
parallel(
build(
job: 'test_job',
parameters:
[[$class: 'StringParameterValue', name: 'baseUrlFromDeploymentJob', value: "$environment_url"],
[$class: 'StringParameterValue', name: 'dynamicHubUrlTarget', value: "http://test.x.x.x/wd/hub"],
[$class: 'StringParameterValue', name: 'reDirectHubUrlVal', value: "yes"],
[$class: 'StringParameterValue', name: 'Browser', value:
"$BrowserName"]
]
)
)
您也可以简化parameters
图:
parallel(
build(
job: 'test_job',
parameters: [
string(name: 'baseUrlFromDeploymentJob', value: "$environment_url"),
string(name: 'dynamicHubUrlTarget', value: "http://test.x.x.x/wd/hub"),
string(name: 'reDirectHubUrlVal', value: "yes"),
string(name: 'Browser', value: "$BrowserName")
]
)
)
PS感谢@mkobit进行更正。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.