0

我想知道是否有办法在执行期间访问 Jenkins Workflow 脚本对象。

我有一个共享库,我可以将此对象作为参数传递给任何 groovy 类,可以直接从 Jenkins 文件使用“this”关键字,也可以从 vars 文件夹中的任何 DSL,也可以使用“this”关键字。

但是我想使用一种方法来访问它,即使这意味着使用自反性。

那可能吗?

4

1 回答 1

1

这里以管道为例,其中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}"
    }
}
于 2020-01-15T20:44:56.300 回答