2011-12-07 6 views
0

に基づいて値を置き換えるmavenを取得します。明らかに、ソースリポジトリに保存されているアルファデータベースの資格情報は問題ありませんが、ベータと本番の資格情報は、そのIDの発行元の前に置かれます。私のプロジェクトのポイントで、私がテストのためのベータと本番データベースへのデータ接続を移動するポイントで、ユーザー/ build.properties

私はmavenが{userdir} /build.propertiesファイルを持つことができます。これは、ソースリポジトリからdb資格情報を保持するために使用したいファイルです。しかし、私はファイルx.cfg.xmlの値を置き換える必要があることを理解するようには思えません。

ので、私は

<property name="hibernate.connection.url">@[email protected]</property> 

今私は{ユーザーディレクトリ}に値のthatsでその変数を置き換えるためにMavenを得るのですか私はhibernate.cfg.xmlファイルの1本のラインを持っているファイルを/build.properties ?

編集------------- iveはproperties-maven-pluginプラグインで再生していましたが、起動することができないようです。私はこれを私の親のポンに入れます

<plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>properties-maven-plugin</artifactId> 
       <version>1.0-alpha-2</version> 
       <executions> 
        <execution> 
         <id>read-properties</id> 
         <phase>initialize</phase> 
         <goals> 
          <goal>read-project-properties</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

しかし、ビルドすると起動しません。もし私がhttp://maven.apache.org/maven-1.x/reference/properties.htmlを読んでいるのであれば、〜/ build.propertiesフォルダ内のビルドプロパティファイルを見つけてそこから移動するべきですが、わかりません。

答えて

0

あなたはこれを間違った方法で近づいていると思います。ビルドプロセスで適切な接続の詳細をJARファイルに書き込む代わりに、起動時にプログラムが設定ファイルを探すようにする必要があります。

通常、私の休止状態のアプリケーションは、%user.home&/.appname/config.propertiesの下にファイルを探し、そこからDB資格情報とその他の配備仕様データをロードします。ファイルが見つからない場合は、デフォルトのバージョンをJARに含めてこの場所にコピーすることができます(最初の起動時にファイルを新しいシステムにコピー・ペーストする必要がないため、適切な設定で編集します)。

このようにして、同じビルドを使用してテストサーバーと本番サーバー用のJAR(またはWAR)ファイルを作成することができますが、違いは(すでに展開されていると思われる)構成ファイルにあります。これにより、ビルドプロセスの複雑さを伴うことなく、それぞれが異なるデータベースに対話する、複数の本番用の配置を行うことも可能になります。

+0

私は、プロジェクトの開始時にこのことを考えられたが43のプロジェクトでは、アプリケーションとそれぞれにいくつかの非常に複雑な構成がありますビルドタイプ。その理由は、私は、その特定のビルドタイプの設定ファイルを使って各ビルドタイプのフォルダのアプローチをとったのです。そのビルドタイプごとに維持する必要のある環境とインタフェースを備えた私たちのためにうまくいきました.db資格情報のこの最後の問題は解決されました。 – scphantm

0

2つのプラグインを使用できます。

  1. 性質-のmaven-pluginの
  2. 代用

    <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>properties-maven-plugin</artifactId> 
         <version>1.0-alpha-1</version> 
         <executions> 
          <execution> 
           <phase>initialize</phase> 
           <goals> 
            <goal>read-project-properties</goal> 
           </goals> 
           <configuration> 
            <files> 
             <file>{userdir}/build.properties</file> 
            </files> 
           </configuration> 
          </execution> 
         </executions> 
         </plugin> 
    
         <plugin> 
         <groupId>com.google.code.maven-replacer-plugin</groupId> 
         <artifactId>replacer</artifactId> 
         <version>1.5.2</version> 
         <executions> 
          <execution> 
           <phase>prepare-package</phase> 
           <goals> 
            <goal>replace</goal> 
           </goals> 
          </execution> 
         </executions> 
         <configuration> 
          <includes> 
          <include>target/**/*.*</include> 
         </includes> 
          <replacements> 
           <replacement> 
            <token>@[email protected]</token> 
            <value>http://[anyURL]</value> 
           </replacement> 
          </replacements> 
         </configuration> 
        </plugin> 
    
関連する問題