我想知道是否有办法在执行期间访问 Jenkins Workflow 脚本对象。
我有一个共享库,我可以将此对象作为参数传递给任何 groovy 类,可以直接从 Jenkins 文件使用“this”关键字,也可以从 vars 文件夹中的任何 DSL,也可以使用“this”关键字。
但是我想使用一种方法来访问它,即使这意味着使用自反性。
那可能吗?
我想知道是否有办法在执行期间访问 Jenkins Workflow 脚本对象。
我有一个共享库,我可以将此对象作为参数传递给任何 groovy 类,可以直接从 Jenkins 文件使用“this”关键字,也可以从 vars 文件夹中的任何 DSL,也可以使用“this”关键字。
但是我想使用一种方法来访问它,即使这意味着使用自反性。
那可能吗?
这里以管道为例,其中this是一个script对象。这里有一些其他的例子:
MyClass myClass = new MyClass()
pipeline {
agent any
environment {
VAR1 = "var1"
VAR2 = sh(returnStdout: true, script: "echo var2").trim()
VAR3 = "var3"
}
stages {
stage("Stage 1") {
steps {
script {
myClass.myPrint(this, "${VAR1}", "${VAR2}", "${VAR3}")
}
}
}
}
}
class MyClass implements Serializable {
void myPrint(def script, String var1, String var2, String... vars) {
script.echo "myPrint: ${var1}"
}
}