ディレクトリにMavensettings.xml
ファイルがあります。~/.m2
次のようになります。
<settings>
<profiles>
<profile>
<id>mike</id>
<properties>
<db.driver>org.postgresql.Driver</db.driver>
<db.type>postgresql</db.type>
<db.host>localhost</db.host>
<db.port>5432</db.port>
<db.url>jdbc:${db.type}://${db.host}:${db.port}/dbname</db.url>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>mike</activeProfile>
</activeProfiles>
<servers>
<server>
<id>server_id</id>
<username>mike</username>
<password>{some_encrypted_password}</password>
</server>
</servers>
</settings>
これらのプロパティを 2 回使用したい
- Maven の
integration-test
フェーズに入ったら、データベースをセットアップして破棄します。Maven フィルタリングを使用すると、これは完全に機能します。 servlet-context.xml
2 回目は、Spring アプリケーションを実行するときです。これは、 Maven のresources:resources
フェーズでこれらのプロパティをファイルに置き換える必要があることを意味します。settings.xml
のようなの上部セクションにあるプロパティの場合${db.url}
、これは正常に機能します。 データベースのユーザー名と (復号化された) パスワードを Springファイルに置き換える方法がわかりません。servlet-context.xml
私のファイルの関連部分はservlet-context.xml
次のようになります。
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${db.driver}</value></property>
<property name="url"><value>${db.url}</value></property>
<property name="username"><value>${username}</value></property>
<property name="password"><value>${password}</value></property>
</bean>
ここでの最終目標は、各開発者が独自の Maven 設定 (および統合テスト用の独自のマシン上のデータベース) を持つことです...そして、Jenkins サーバー上で同様の設定を行います。共通のユーザー名/パスワードなどを共有したくありません。