繁体   English   中英

詹金斯管道(Jenkins Pipeline)抛出非法药物例外

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM