Leo*_*ell 8 groovy jenkins jenkins-pipeline jenkinsfile
如何在Jenkinsfile中导入Groovy类?我尝试了几种方法,但没有一种方法有效.
这是我要导入的类:
Thing.groovy
class Thing {
void doStuff() { ... }
}
Run Code Online (Sandbox Code Playgroud)
这些是不起作用的东西:
Jenkinsfile-1
node {
load "./Thing.groovy"
def thing = new Thing()
}
Run Code Online (Sandbox Code Playgroud)
Jenkinsfile-2
import Thing
node {
def thing = new Thing()
}
Run Code Online (Sandbox Code Playgroud)
Jenkinsfile-3
node {
evaluate(new File("./Thing.groovy"))
def thing = new Thing()
}
Run Code Online (Sandbox Code Playgroud)
您可以通过load命令返回该类的新实例,并使用该对象调用"doStuff"
所以,你会在"Thing.groovy"中有这个
class Thing {
def doStuff() { return "HI" }
}
return new Thing();
Run Code Online (Sandbox Code Playgroud)
你会在你的dsl脚本中有这个:
node {
def thing = load 'Thing.groovy'
echo thing.doStuff()
}
Run Code Online (Sandbox Code Playgroud)
哪个应该打印"HI"到控制台输出.
这会满足您的要求吗?