2010-11-18 15 views
3

私はwarパッケージングのMavenプロジェクトを持っています。このプロジェクトでは、myapp.propertiesというJavaプロパティファイルがあります。このプロパティファイルでは、webappで使用されるいくつかのパラメータ(データベース接続パラメータなど)を保存します。Mavenのwarプロジェクトにパッケージ化される異なるファイル

  1. どちらの継続的な統合環境や私の開発環境では、私は例えば、私のテストデータベースに接続するためにmyapp.propertiesでいくつかのテストパラメータを設定します。
  2. 同時に、最終的なwarパッケージにこれらのパラメータを空白のままにして、ユーザーが環境に展開する際にこれらの値を自分自身で追加できるようにします。最終的なwarパッケージは、継続的な統合環境で生成されたビルド成果物でなければなりません。

基本的に、別のケースで使用したいmyapp.propertiesファイルには2つのバージョンがあります。私の質問は、この問題を解決するMavenの方法は何ですか?自分の開発環境でEclipse + WTP + m2eclipseを使用しています。私の開発ツールと一緒に使えたらいいと思います。

答えて

4

あなたはこのブログを見てすることができますhttp://blog.jayway.com/2010/01/21/one-artifact-with-multiple-configurations-in-maven/

彼らは別の戦争のファイルを構築し、(代わりに、異なるプロファイルの)異なる分類器を使用しています。 私はそれがmavenの方法であるかどうかはわかりませんが、それは私のプロジェクトのいくつかでうまくいきます。

0

私はあなたのプロジェクト(または親POM)あなたの特性ファイル(複数可)などで

 <build> 
      ... 
     <resource> 
      <directory>src/main/resources</directory> 
      <includes> 
       <include>**/*.properties</include> 
      </includes> 
      <filtering>true</filtering> 
     </resource> 
     ... 
     </build> 

ため

のpom.xmlでそれをしようとするだろうご使用の開発段階に応じて

db.url=${db.url} 

とあなたのsettings.xml内(http://maven.apache.org/settings.html#Profilesを参照)

<db.url>jdbc:mysql://localhost:3306/testdb</db.url> 

(ローカルなど、サーバーを構築する)あなたは異なるdb.url値に

を使用することができますこれはdb.urlプロパティを空白のままにしませんが、アーティファクトをパッケージ化するたびに、本当に空白にしておきたいですか?

+0

これはMavenのプロファイルメカニズムを使用しています。しかし、私のCI環境では、テストのためのテスト戦争と、テストがうまくいくと、生産戦争を成果物として構築する必要があります。この場合、同じ環境で異なるプロファイルを使用して差別化することはできないと思われ、異なる目的のために2つの成果物を構築する必要がありますか? – nybon

+0

私はあなたのCI envを知りませんが、私たちはテスト、プロダクション(統合など)の設定が異なります。これには異なるプロファイルが含まれています –

関連する問題