Jenkinsfile内にGroovyクラスをインポートするにはどうすればよいですか?私はいくつかの方法を試しましたが、どれもうまくいきませんでした。
これは私がインポートしたいクラスです:
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-
node {
evaluate(new File("./Thing.groovy"))
def thing = new Thing()
}
Loadコマンドを使用してクラスの新しいインスタンスを返し、オブジェクトを使用して「doStuff」を呼び出すことができます
だから、これは "Thing.groovy"にあります
class Thing {
def doStuff() { return "HI" }
}
return new Thing();
そして、あなたはあなたのdslスクリプトでこれを持っているでしょう:
node {
def thing = load 'Thing.groovy'
echo thing.doStuff()
}
「HI」をコンソール出力に出力する必要があります。
これはあなたの要件を満たしますか?
これは興味深いですが、いくつかのコンストラクタを持つことができますか?
共有ライブラリを使用すれば簡単にできますが、この場合、クラスは共有ライブラリの外部にあります