如何将Groovy变量用于Extended Choice Jenkins插件?

时间:2019-05-19 13:30:35

标签: jenkins groovy jenkins-pipeline

我想使用Groovy变量作为Extended Choice插件的值。似乎很琐碎,但不起作用-失败,出现“ groovy.lang.MissingPropertyException:无此类属性:类:groovy.lang.Binding的$ COMPONENTS_LIST”。

有什么想法吗?

environment {
    COMPONENTS_LIST= "one two three"
}
parameters {
    extendedChoice (description: 'Components', multiSelectDelimiter: ' ', 
    name: 'Components_To_Deploy', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_MULTI_SELECT', 
    value: $COMPONENTS_LIST, visibleItemCount: 3)
}

2 个答案:

答案 0 :(得分:3)

这是语法错误,您正在尝试将命名参数value设置为变量$COMPONENTS_LIST的内容;不存在。变量的范围也有问题。这两个闭包都需要可用。因此,请尝试使用所需的值在两个闭包的范围之外定义变量,然后在闭包内使用变量,如以下示例所示:

def componentsList = "one two three"
environment {
    COMPONENTS_LIST = componentsList
}
parameters {
    extendedChoice (description: 'Components', multiSelectDelimiter: ' ', 
    name: 'Components_To_Deploy', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_MULTI_SELECT', 
    value: componentsList, visibleItemCount: 3)
}

答案 1 :(得分:0)

我认为这是一个语法问题。您必须使用双引号来引用您的变量:

def COMPONENTS_LIST= "one two three"
parameters {
    extendedChoice (description: 'Components', multiSelectDelimiter: ' ', 
    name: 'Components_To_Deploy', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_MULTI_SELECT', 
    value: "${COMPONENTS_LIST}", visibleItemCount: 3)
}