我的问题与How to access list of Jenkins job parameters from within a JobDSL script?
密切相关有这样的差异:我如何访问DSL脚本中的一个特定参数?
我试图从上述问题的答案中找出答案,但无法弄清楚。
我们假设参数名为REPOSITORY_NAME
。
我尝试使用接受的答案中的代码并执行类似
import hudson.model.*
Build build = Executor.currentExecutor().currentExecutable
ParametersAction parametersAction = build.getAction(ParametersAction)
def newname = parametersAction.parameters['REPOSITORY_NAME'].ParameterValue
println newname
但我只有
错误:(脚本,第5行)异常评估属性' REPOSITORY_NAME' for java.util.Collections $ UnmodifiableRandomAccessList,Reason:groovy.lang.MissingPropertyException:没有这样的属性:REPOSITORY_NAME for class:hudson.model.StringParameterValue
我也试过
def newname = parametersAction.parameters.getParameter('REPOSITORY_NAME').ParameterValue
相反,但它给了我
错误:(脚本,第5行)没有方法签名:java.util.Collections $ UnmodifiableRandomAccessList.getParameter()适用于参数类型:(java.lang.String)值:[REPOSITORY_NAME]
我需要更改哪些才能使其正常工作?
答案 0 :(得分:0)
Okey现在只是使用上述问题的第二个答案并且if-else like
def reponame = ''
binding.variables.each {
println "${it.key} = ${it.value}"
if(it.key == 'REPOSITORY_NAME'){
reponame = it.value
}
}
可能不是最有效的方式,但它有效。