如何打印groovy变量?

时间:2017-05-09 09:41:10

标签: variables jenkins groovy jenkins-pipeline

我在Jenkins管道中有以下代码:

library(data.table)
data.table(group=sapply(combi_groups, paste, collapse=", "), id=uniq_ID)
#           group                id
#1:             1             L1,L2
#2:          1, 2       L1,L2,L3,L4
#3:       1, 2, 3 L1,L2,L3,L4,L5,L6
#4:    1, 2, 3, 4 L1,L2,L3,L4,L5,L6
#5: 1, 2, 3, 4, 5 L1,L2,L3,L4,L5,L6

data.table(group=sapply(combi_groups, paste, collapse=", "), id=uniq_ID)[2, id]
[[1]]
[1] "L1" "L2" "L3" "L4"

我正在尝试使用"服务器"来解决问题。在" ChoiceParameterDefinition"。

中设置的变量

当我运行构建时,出现以下错误:

public Class A
{
        (...)

        public bool Test()
        {
            var b = new B();
            return b.RunTheMethod(b.Method1);
        }

        (...)
}

据我所知,"服务器"是一个groovy变量,因此我应该能够使用$ {}访问它。

所以我试过了:

stage ('Question') {
    try {
        timeout(time: 1, unit: 'MINUTES') {
            userInput = input message: 'Choose server to publish to:', ok: '', parameters: [
                [$class: 'hudson.model.ChoiceParameterDefinition', choices: 'pc-ensureint\nother-server', description: 'Choose server to publish to:', name: 'server']
        ] 
      }
    } catch (err) {
        userInput = [server: 'pc-ensureint'] // if an error is caught set this value
    }
}

node () {
    println ${server}
}

但无论我尝试什么,我都会收到这个错误。

知道我做错了吗?

3 个答案:

答案 0 :(得分:18)

以下代码对我有用:

echo userInput

答案 1 :(得分:6)

当你不在字符串之外时,你不应该使用${varName},你应该只使用varName。在内部字符串中,你可以这样使用它echo "this is a string ${someVariable}";。事实上,您可以在${...}内放置一般的java表达式; echo "this is a string ${func(arg1, arg2)}

答案 2 :(得分:-3)

看看堆栈跟踪。我认为它是课堂上的$。 变量是注释定义,带有$ in groovy