4

withEnvステップ(または他のラッパータイプ)で設定された環境変数をgradleプラグインに取得させたいです。ステップを使用して gradle を呼び出すshと変数が見つかりますが、gradle プラグインを使用するとそうではありません。

gradle プラグインはこれと同等の処理を実行します。

EnvVars env = run.getEnvironment(taskListener);
launcher.launch().cmds(args).envs(env).stdout(gca)
                        .pwd(rootLauncher).join();

run.getEnvironment() の Javadoc には次のように記載されています。

このビルドのプロセスを起動するために使用される環境変数を含むマップを返します。外部プロセスを呼び出す BuildSteps は、これを使用する必要があります。これにより、BuildWrappers およびその他のプロジェクト構成 (JDK の選択など) が有効になります。

以前の getEnvVars() とは異なり、このマップにはオーバーライドだけでなく環境全体が含まれているため、値を内省してその動作を変更できます。

プラグインをデバッグすると、gradle 呼び出しに渡される環境内の変数が 12 個未満であることがわかります。これらの変数はいずれも、withEnv提供されるべきではありません。私が知る限り、このshステップはまったく異なる拡張ポイントを使用しており、そのインスタンスEnvVarsがはるかに完全であるように見えるため、まっすぐです。問題が にないことは確かですがwithEnv、gradle プラグインを修正する方法がわかりません。

間違った呼び出しを使用していますか? それとも間違った拡張ポイントですか?

4

1 に答える 1

3

電話しないでくださいRun.getEnvironment。むしろ、EnvVars渡された to を使用してSimpleBuildStep.performください。

于 2015-06-25T19:36:27.363 に答える