198

ビルドツールとしてmavenを使用しています。という環境変数を設定しましたenv。ファイル内のこの環境変数の値にアクセスするにはどうすればよいpom.xmlですか?

4

6 に答える 6

243

Maven プロパティ ガイドを確認してください...

セシャギリがコメントで指摘したように、${env.VARIABLE_NAME}あなたが望むことをします。

警告の言葉を追加し、pom.xmlプロジェクトを完全に記述する必要があるため、環境変数を慎重に使用してください。ビルドを環境に依存させると、再現が難しくなります

于 2012-05-05T15:11:32.433 に答える
37

環境変数を Maven システム プロパティに直接渡す方が安全な場合があります。たとえば、Linux で環境変数 MY_VARIABLE にアクセスするとします。pom ファイルでシステム プロパティを使用できます。

<properties>
    ...
    <!-- Default value for my.variable can be defined here -->
    <my.variable>foo</my.variable>
    ...
</properties>
...
<!-- Use my.variable -->
... ${my.variable} ...

Maven コマンド ラインでプロパティ値を設定します。

mvn clean package -Dmy.variable=$MY_VARIABLE
于 2015-09-16T23:17:40.450 に答える
4

私は変数を設定するシェルスクリプトを実行してから、共有ポンムで変数を使用したいと思って、同じことに苦労していました。目標は、com.google.code.maven-replacer-plugin を使用して、プロジェクト ファイル内の文字列を環境変数に置き換えることでした。

を使用する${env.foo}${env.FOO}、私にとってはうまくいきませんでした。Mavenは変数を見つけられませんでした。うまくいったのは、変数を Maven のコマンドライン パラメータとして渡すことでした。セットアップは次のとおりです。

  1. シェル スクリプトで変数を設定します。サブスクリプトで Maven を起動する場合は、変数が設定されていることを確認してください (たとえばsource ./maven_script.sh、親スクリプトから変数を呼び出すために使用します)。

  2. shared-pom で、環境変数を取得するコマンドライン パラメータを作成します。

<プラグイン>
  ...
  <実行>
    <実行>
    ...
      <実行>
      ...
        <構成>
          <param>${foo}</param> <!-- これは ${env.foo} ではないことに注意してください -->
        </設定>
  1. com.google.code.maven-replacer-plugin で、置換値を作成します${foo}

  2. maven を呼び出すシェル スクリプトで、これをコマンドに追加します。-Dfoo=$foo

于 2016-02-25T13:16:30.100 に答える