web-dev-qa-db-ja.com

Mavenプロファイルに基づいてファイルの値を変更します

アプリケーションにApplicationResources.propertiesというプロパティファイルがあり、プロパティは環境に応じて変化します。プロパティは次のとおりです。

     resources.location=/home/username/resources

この値は、アプリケーションが開発中に実行されるときと、アプリケーションが本番環境に入るときに異なります。

Mavenでさまざまなプロファイルを使用して、さまざまな環境でさまざまなビルドタスクを実行できることを知っています。私がやりたいのは、使用中のMavenプロファイルに基づいて、プロパティファイルのresources.locationの値を何らかの方法で置き換えることです。これも可能ですか?

25

私がやりたいのは、使用中のMavenプロファイルに基づいて、プロパティファイルのresources.locationの値を何らかの方法で置き換えることです。これも可能ですか?

はい、そうです。リソースフィルタリングをアクティブにし、各プロファイルで置き換える値を定義します。

ApplicationResources.propertiesで、次のように置き換えるトークンを宣言します。

resources.location=${your.location}

POMで、適切な<filtering><resource>タグを追加し、次のようにtrueに設定します。

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

次に、各プロファイル内の<your.location>要素内に<properties>要素を追加します。

<project>
  ...
  <profiles>
    <profile>
      <id>my-profile</id>
      ...
      <properties>
        <your.location>/home/username/resources</your.location>
      </properties>
      ...
    </profile>
    ...
  </profiles>
</project>

リソースのフィルタリングの詳細 ここ および ここ

48
Pascal Thivent