mvn -P dev
プロファイルdevを使用してプロジェクトをビルドする場合、以下のようにSpringBeanでdev.propertiesを使用します。出来ますか ?もしそうなら、どうすればプロファイル名を取得できますか?
<bean id="xyz" class="abc.xyz">
<property name="propertyFile" value="${maven_profile_id}.properties" />
</bean>
前もって感謝します。
Maven プロファイルを使用して、「プロファイル」プロパティをビルドに追加できます。
<profiles>
<profile>
<id>dev</id>
<properties>
<profile>dev</profile>
</properties>
</profile>
</profiles>
次に、システム プロパティを使用して値をアプリケーションに渡します。確実な例を次に示します。
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<profile>${profile}</profile>
</systemPropertyVariables>
</configuration>
</plugin>
最後に、これはアプリケーションで参照できます。
<bean id="xyz" class="abc.xyz">
<property name="propertyFile" value="${profile}.properties" />
</bean>
または、Spring 3.1 以降を使用している場合は、XML プロファイル機能がニーズを満たしていることに気付くかもしれません (やり過ぎかもしれませんが)。
ビルド時に使用するプロファイルを指定する Maven のリソース フィルタリングを使用して設定されるプロパティ ファイルを作成します。
build.properties
activatedProfile=${profileId}
pom.xml (ディレクトリ全体をフィルタリングする必要はありません。必要に応じてカスタマイズしてください)
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resources>
</build>
異なるプロファイルごとに (または任意の名前で) プロパティを追加しprofileId
ます。
<profile>
<id>dev</id>
<properties>
<profileId>dev</profileId>
</properties>
</profile>
<profile>
<id>qa</id>
<properties>
<profileId>qa</profileId>
</properties>
</profile>
${activatedProfile}.properties
その後、Bean の値として使用できます
<bean id="xyz" class="abc.xyz">
<property name="propertyFile" value="${activatedProfile}.properties" />
</bean>