2

これはしばらくの間私を悩ませてきました。環境変数のリストがあり、自分のカスタム プラグインのビルドの 1 つの構成でそれらを使用したいと考えています。

ここに画像の説明を入力

${WORKSPACE}したがって、この場合、環境によって構成されたパスに解決したいと思います。

誰でもこれを行う方法を知っていますか? Jelly タグとしては見つからないようです。

4

2 に答える 2

4

あなたが求めている変数展開のタイプは、ビルドステップ自体によってのみ実行できます。これが独自のプラグインである場合は、ここで提案する変更を適用できます。それ以外の場合は、いつでもプラグインの作成者に依頼してください。いずれかを除いて、提供されている回避策 Slav に頼る必要があります。

プラグインのソースにアクセスできる場合は、ビルド ステップの実行中に変数を展開する方法を次に示します。ビルド ステップ クラスは SanityTestResultsToJUnitXMLBuilder であると仮定します。このクラスのperformメソッド内で、ソース ディレクトリ フィールドと宛先ディレクトリ フィールドを展開する必要があります。簡潔にするために、ビルド ステップで通常見られる他のコードのプレース ホルダーを追加しました。

public class SanityTestResultsToJUnitXMLBuilder extends Builder {
    private final String sourceDirectory;
    private final String destinationDirectory;

    /* Constructor and getters typically appear here. */

    @Override
    public void perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
        EnvVars environment = build.getEnvironment(listener);
        String expandedSourceDirectory = environment.expand(sourceDirectory);
        String expandedDestinationDirectory = environment.expand(destinationDirectory);

        /* The rest of the perform() logic goes here */
    }

    /* Other methods typically appear here. */

    /* The Descriptor typically appears here. */
}
于 2014-05-30T18:20:49.760 に答える
0

何を求めているのか正確にはわかりませんが、次の方法で$WORKSPACE環境変数を取得できます。

def workspace = manager.build.getEnvVars()["WORKSPACE"]

于 2014-05-29T19:27:07.063 に答える