0

これを使用して、Spring MVC アプリをビルドします。

mvn clean package

maven war プラグインを使用して war ファイルを作成しますが、直面している問題は、自分のリソース フォルダーに、log4j などの .properties ファイルの開発バージョンがあることです。

本番環境にプッシュして実行すると:

java -jar ...

それは war ファイルを展開し、その時点で .properties ファイルを本番設定で変更できますが、本番用の Maven ビルド中に明らかにこれを実行したいと考えています。

これが本番ビルドであることをmavenに伝える方法はありますか?これらのファイルを別の場所から入手してください。そして、開発中は、今と同じことを続けますか?

4

2 に答える 2

1

ユーザー Maven プロファイル。Maven プロファイルは、プロファイルごとに異なるプロパティを指定するのに役立ちます。そのため、開発用と運用用の 2 つのプロファイルを持つことができます。

このようなもの -

 <profiles>
  <profile>
    <id>development</id>
    <!-- we'll properties here... -->
  </profile>
  <profile>
    <id>production</id>
    <!-- ...and here -->
  </profile>
</profiles>

この例のように -

<profile>
  <id>development</id>
  <properties>
    <db.driverClass>oracle.jdbc.driver.OracleDriver</db.driverClass>
    <db.connectionURL>jdbc:oracle:thin:@127.0.0.1:1521:XE</db.connectionURL>
  </properties>
</profile>
<profile>
  <id>production</id>
  <properties>
    <db.driverClass>oracle.jdbc.driver.OracleDriver</db.driverClass>
    <db.connectionURL>jdbc:oracle:thin:@134.0.0.1:3124:XE</db.connectionURL>
  </properties>
</profile>
于 2013-04-21T14:41:40.097 に答える
0

ここにはいくつかのオプションがあります。1 つ目 (他の人も言及しているように) は、maven プロファイルを使用することです。複数のバージョンのプロパティ ファイルを用意する代わりに、次のようにします。

mypropsfile.properties
-----------------------
prop1=${prop1.val}
prop2=${prop2.val}

次に、プロファイルで、これらのプロパティの値を定義できます (これが機能するようにリソース フィルタリングが有効になっていることを確認してください。例を参照してください http://www.manydesigns.com/en/portofino/portofino3/tutorials/using-maven- profile-and-resource-filtering )。

また、プロパティ ファイルにプロダクション値を含めることもできますが、開発中にこれらのファイルをオーバーライドすることができます。これには、 Spring プロファイルが役立ちます。たとえば、開発モードでは、 という名前のプロパティ ファイルを探すことができます<user-home>/mypropertiesoverride.properties。これを使用して、製品の値のプロパティを開発固有のプロパティでオーバーライドできます。

ここでは、デフォルトのプロパティ ファイルがあり、選択したプロパティを上書きできる 2 番目の方法をお勧めします。

于 2013-04-21T14:46:26.200 に答える