12

Jenkinsfile 内に Groovy クラスをインポートするにはどうすればよいですか? いくつかのアプローチを試しましたが、どれもうまくいきませんでした。

これは私がインポートしたいクラスです:

Thing.groovy

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

これらは機能しないものです:

ジェンキンスファイル-1

node {
    load "./Thing.groovy"

    def thing = new Thing()
}

ジェンキンスファイル-2

import Thing

node {
    def thing = new Thing()
}

ジェンキンスファイル-3

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

    def thing = new Thing()
}
4

1 に答える 1

9

load コマンドを介してクラスの新しいインスタンスを返し、オブジェクトを使用して「doStuff」を呼び出すことができます。

したがって、これは「Thing.groovy」にあります。

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

return new Thing();

そして、あなたのDSLスクリプトにこれがあります:

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

コンソール出力に「HI」を出力する必要があります。

これはあなたの要件を満たしますか?

于 2016-08-30T03:23:16.063 に答える