我想知道是否有办法在执行期间访问 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}"
}
}