如何将 Groovy class 导入 Jenkinsfile?

How do I import a Groovy class into a Jenkinfile?

如何在 Jenkinsfile 中导入 Groovy class?我尝试了几种方法,但 none 奏效了。

这是我要导入的class:

Thing.groovy

class Thing {
    void doStuff() { ... }
}

这些是行不通的:

Jenkinsfile-1

node {
    load "./Thing.groovy"

    def thing = new Thing()
}

Jenkinsfile-2

import Thing

node {
    def thing = new Thing()
}

Jenkinsfile-3

node {
    evaluate(new File("./Thing.groovy"))

    def thing = new Thing()
}

您可以通过加载命令 return class 的新实例并使用该对象调用 "doStuff"

所以,你会在 "Thing.groovy"

class Thing {
   def doStuff() { return "HI" }
}

return new Thing();

并且您的 dsl 脚本中会包含以下内容:

node {
   def thing = load 'Thing.groovy'
   echo thing.doStuff()
}

应该将 "HI" 打印到控制台输出。

这样能满足您的要求吗?