在jenkins的groovy脚本中使用参数访问会引发异常

时间:2018-01-31 21:04:46

标签: jenkins groovy parameters jenkins-pipeline

我有一个名为VERSION的字符串参数,设置为示例 - 0000 以下是我在jenkins的groovy管道中尝试的内容

import hudson.model.*
/*// get parameters
def parameters = build?.actions.find{ it instanceof ParametersAction 
}?.parameters
parameters.each {
println "parameter ${it.name}:"
println it.dump()
}
*/
print ("VERSION is ${VERSION}")
def version_value = build.buildVariableResolver.resolve("VERSION")

它引发了以下异常,访问“build”有什么问题?

[Pipeline] echo
VERSION is 0000
[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: build for class: WorkflowScript
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:458)
at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.getProperty(DefaultInvoker.java:34)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:12)
at ___cps.transform___(Native Method)

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试访问hudson.model.build,但我相信这是一个类,而不是一个对象。它也不是当前对象的属性 - WorkflowScript。所以它根本不存在。

在管道脚本中,您应该可以访问" currentBuild"。转到your.jenkins.server.url / pipeline-syntax / globals,查看通过该服务器可以访问的全局变量脚本。

同一页面还应显示您可以访问名为" params"的变量。也许你在找什么?

从您的问题来看,目前尚不清楚您的最终目标是什么。您已经可以访问VERSION,如echo语句所示。那你为什么要从构建对象中获取它?如果您更新以解释最终目标是什么,您可能会得到更多帮助。