Java Maven:不同配置文件的不同属性文件
我使用不同的maven配置文件将我的应用程序部署到不同的环境。(使用WebLogicMaven插件,但我认为这并不重要) 在应用程序中,我使用SpringWeb服务。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。此属性文件将在Mavens包阶段写入(或复制) 这是个好主意吗 如果是:如何使用maven创建此属性(或整个文件)Java Maven:不同配置文件的不同属性文件,java,maven-2,Java,Maven 2,我使用不同的maven配置文件将我的应用程序部署到不同的环境。(使用WebLogicMaven插件,但我认为这并不重要) 在应用程序中,我使用SpringWeb服务。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。此属性文件将在Mavens包阶段写入(或复制) 这是个好主意吗 如果是:如何使用maven创建此属性(或整个文件) 如果否:解决此问题的更好方法是什么?我也取得了类似的成果,但将变量放在了pom.xm
如果否:解决此问题的更好方法是什么?我也取得了类似的成果,但将变量放在了
pom.xml
中,而不是放在了propreties文件中。因此,我的属性文件中的变量将由Maven在打包时更改
首先,我在pom的profiles部分定义了这些变量:
<profiles>
<profile>
<id>dev</id>
<activation><activeByDefault>true</activeByDefault></activation>
<properties>
<props.debug>true</props.debug>
<props.email>false</props.email>
<what.ever.you.want>value for dev profile</what.ever.you.want>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<props.debug>false</props.debug>
<props.email>true</props.email>
<what.ever.you.want>value for prod profile</what.ever.you.want>
</properties>
</profile>
</profiles>
这不仅适用于属性文件,也适用于XML(我猜适用于每个文本文件)
相反的是:
- 部分配置分散在pom文件中
- Maven包装更耐用(因为过滤)
- 将变量放在XML文件中会导致语法错误(因为字符$)
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
sendEmail=${props.email}