web-dev-qa-db-ja.com

Mavenを実行する前に環境変数を設定します(jenkinsビルドの場合)

ネイティブCコードを含むMavenプロジェクトをビルドすることになっているマシンにjenkinsスレーブをセットアップしています。しかし、マシン自体が問題であることが証明されています。マシンはかなり古いプログラムをホストしており、Java_HOMEなど、Mavenが正しく機能するために必要な多くの環境変数を使用しています。スレーブマシンでmavenを実行するには、mavenまたはmavenを実行する前にこれらの環境変数を設定する必要があり、sshなどの他の依存関係は実行されません。変数を永続的に変更することはできないので、Mavenビルドを実行する前に環境変数を変更する方法が必要です。

Mvnを実行する前に環境変数を設定することで手動でビルドを実行でき、ビルドは魅力のように機能します。しかし、ビルドを自動的にトリガーするにはjenkinsが必要です。

私が見るように、私は次のいずれかを行う必要があります:mavenを実行する前に環境変数を設定するようにjenkinsを構成するか、特定の環境変数の代わりに特定の値を使用するようにmavenを構成します(jenkinsが実行を処理できるように)

あなたの助けは大歓迎です。

11
Martin Nielsen

たくさんのオプションがあります。

  • 環境変数を設定するようにノードを構成します(Nodeプロパティの下で、「環境変数」を確認してください))
  • ツールの場合、Jenkinsは必要な環境自体を設定します。ノード構成では、メイン構成で構成されているツールにさまざまなパスを設定できます(Nodeプロパティの下、[ツールの場所]を確認してください))。プラグインは必要ないと思います。このオプション。
  • EnvInjectプラグイン を使用します( Setenvプラグイン は非推奨です)
  • Envfileプラグイン を使用します
  • mavenを手動で起動する前に、環境変数を設定します。同じビルドステップで両方を使用する必要があります。 (最悪の解決策)
  • その特定のノードでのみ有効なJava/Maven構成を作成し、それをジョブで使用します。これは、ジョブが特別なノードでのみ実行され、他の場所では実行されない場合にのみ機能します。

最初または2番目のオプションをお勧めします

16
Peter Schuetze

Jenkinsは、ジョブ構成のUI​​を介した環境変数の設定をサポートする可能性があると思います。そうでない場合は、環境を設定するスクリプトを作成し、ビルドジョブの実行時にjenkinsにそのスクリプトを実行させることができます。

0
chad