如何将 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" 打印到控制台输出。
这样能满足您的要求吗?
如何在 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" 打印到控制台输出。
这样能满足您的要求吗?