如何使用 Maven 配置文件名称作为变量
How to use Maven Profile Name as a variable
我需要构建一个 war 文件,该文件可以根据其配置文件名称调用 JDBC 连接。
当我使用开发配置文件构建时,我需要它来调用 dev.properties 文件。当我使用 prod 配置文件构建时,我需要它从 prod.properties 文件中读取。
我的想法是以某种方式将配置文件名称用作变量,但我不知道该怎么做。
POM.XML
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile-id>dev</profile-id>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile-id>prod</profile-id>
</properties>
</profile>
servlet-context.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:${profile-id}.properties</value>
</property>
</bean>
<property name="dataSourceProperties">
<props>
<prop key="url" >${jdbc}</prop>
<prop key="user">user</prop>
<prop key="password">password</prop>
<prop key="implicitCachingEnabled">true</prop>
</props>
</property>
你必须使用maven的过滤概念。参见 http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
添加到您的 pom 中:
<resource>
<directory>directory.to.servlet/servlet-context.xml</directory>
<filtering>true</filtering>
</resource>
用真实目录替换directory.to.servlet
我需要构建一个 war 文件,该文件可以根据其配置文件名称调用 JDBC 连接。
当我使用开发配置文件构建时,我需要它来调用 dev.properties 文件。当我使用 prod 配置文件构建时,我需要它从 prod.properties 文件中读取。
我的想法是以某种方式将配置文件名称用作变量,但我不知道该怎么做。
POM.XML
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile-id>dev</profile-id>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile-id>prod</profile-id>
</properties>
</profile>
servlet-context.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:${profile-id}.properties</value>
</property>
</bean>
<property name="dataSourceProperties">
<props>
<prop key="url" >${jdbc}</prop>
<prop key="user">user</prop>
<prop key="password">password</prop>
<prop key="implicitCachingEnabled">true</prop>
</props>
</property>
你必须使用maven的过滤概念。参见 http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html
添加到您的 pom 中:
<resource>
<directory>directory.to.servlet/servlet-context.xml</directory>
<filtering>true</filtering>
</resource>
用真实目录替换directory.to.servlet