gpt4 book ai didi

jenkins - 如何将Jenkins管道脚本的各个部分提取到类中?

转载 作者:行者123 更新时间:2023-12-04 03:19:35 24 4
gpt4 key购买 nike

我想将我的Jenkins管道脚本重构为可读取和可重用的类。

问题是我在这样做时会遇到异常。
让我们看一个简单的例子:

当我运行

echo currentBuild.toString()

一切安好

但是当我这样提取它到一个类中时:
class MyClass implements Serializable {
def runBuild() {
echo currentBuild.toString()
}
}
new MyClass().runBuild()

我得到一个异常(exception):
Started by user admin
Replayed #196
[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: currentBuild for class: MyClass

将流水线代码提取到类中的正确方法是什么?

最佳答案

您的方法是正确的,但是问题是您没有将脚本对象传递给类的实例,而是试图调用在您创建的类中未定义的方法。

这是解决此问题的一种方法:

// Jenkins file or pipeline scripts editor in your job
new MyClass(this).runBuild()

// Class declaration
class MyClass implements Serializable {
def script
MyClass(def script) {
this.script=script
}
def runBuild() {
script.echo script.currentBuild.toString()
}
}

关于jenkins - 如何将Jenkins管道脚本的各个部分提取到类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39942442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com