0

我有一个常见的 Jenkins 工作流程,看起来像

def build() {
   echo "build"
}

def test() {
   echo "test"
}

def runAll() {
   build()
   test()
}

return this;

用户代码:

node {
   def flow = load(...)
   flow.runAll()
}

有没有办法覆盖 flow 方法而不重新实现使用它的方法?就像是

flow.metaClass.build = { -> echo "Custom build" }  
4

1 回答 1

0

当您不使用loadstep 时,您可以通过定义它们来将 step 函数替换为自定义函数。(可以访问原始步骤steps.build等)

我没有专门测试在loaded 脚本中定义的覆盖函数的情况,但如果它还没有工作——我假设你发现它没有,因为你问这个问题,对吧?——我怀疑你只需要像这样限定它:this.build()

于 2015-10-28T23:03:13.520 回答