Groovy 无法将sh分配给文件中的变量

Groovy 无法将sh分配给文件中的变量,groovy,jenkins-pipeline,Groovy,Jenkins Pipeline,我想将它们全局可用的函数注入到我的库中。但是我不能将sh函数分配给变量。为什么这不可能 // var/testFunc.groovy def call() { // works def dockerLib = docker def dockerLib2 = this.docker // fails def shLib = sh def shLib2 = this.sh } docker是一个全局变量,sh是一个步骤。你能试试steps.sh吗?我想你知道Jenkins共

我想将它们全局可用的函数注入到我的库中。但是我不能将
sh
函数分配给变量。为什么这不可能

// var/testFunc.groovy
def call() {
  // works
  def dockerLib = docker
  def dockerLib2 = this.docker
  // fails
  def shLib = sh
  def shLib2 = this.sh
}

docker
是一个全局变量,
sh
是一个步骤。你能试试steps.sh吗?我想你知道Jenkins共享库HowTo吧?他们告诉使用脚本的this指针作为指向类构造函数的参数,将其存储在某个类成员变量中,并在官方jenkins文档中使用类似“script.sh”的变量是@JoergS solution,并提供了一些示例。是的,我知道共享库文档。我还有一个简单的解决方法(例如,对于sh:
shellCall={cmd->sh cmd}
)。但我仍然不明白,为什么这是不可能的。我是Groovy的新手。