【发布时间】:2019-05-21 08:40:43
【问题描述】:
我想了解基于 groovy DSL 和闭包的 Jenkins 管道的一部分代码。
我有一个 Jenkins 文件如下:
foo {
var1 = "foo value 1"
var2 = "foo value 2"
}
我的 Jenkins 共享库中有一个 groovy 脚本(vars 目录中的 foo.groovy):
def call(body) {
def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
body()
println config.var1 // display foo value 1 : for me the magic is here !!
}
我想了解 groovy / jenkins 机制,当调用闭包时,map config 设置为变量 var1 和 var2。
我(几乎)了解闭包机制和委托方法,但是我们怎么知道配置映射对闭包的委托字段的影响允许使用我的 Jenkinsfile 中声明的变量构建映射?
我希望我的问题很清楚! :)
问候,
史蒂夫
【问题讨论】: