两个嵌套的Groovy闭包-寻找更简洁的语法

时间:2019-01-11 16:58:09

标签: groovy jenkins-pipeline

我不熟悉Groovy语法,但是花了一些时间研究它。我正在使用Jenkinsfile,并且有一个类似于以下内容的部分:

configFileProvider([/* ... */]) {
  withCredentials([/* ... */]) {
    sh 'my command'
  }
}

Groovy语法是否可以使这种相同逻辑的简短表达?我不喜欢这里的缩进。

1 个答案:

答案 0 :(得分:1)

您可以将任何闭包分配给变量并将其传递。因此,您可以重构为:

def shCommand = { withCredentials([...]) {
  sh 'my command'
}}
configFileProvider([...], shCommand)

def shCommand = {
  sh 'my command'
}
configFileProvider([...]) {
  withCredentials([...], shCommand)
}