版权声明:分享知识是一种快乐,愿你我都能共同成长! https://blog.csdn.net/qidasheng2012/article/details/89520438
一、简介
在实际开发过程中会用dev(开发)、sit(测试)、uat(测试)、pro(生产)四个不同环境,在不同环境下数据库及其他配置参数都是不同的,基于上述问题我们可以使用maven的filter管理不同环境的配置文件
二、使用篇
SSM项目demo: https://github.com/qidasheng2012/ssm
1、先在根目录下建一个filters目录,再分别建dev、sit、uat、pro四个目录
2、在pom.xml中进行配置
<build>
<resources>
<!-- 设置对src/main/resources下所有*.properties进行过虑,即这些文件中的${key}会被替换掉为真正的值 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<!-- 设置对src/main/resources下所有*.xml,不会进行替换 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<!-- 设置对src/main/java下所有*.xml,不会进行替换 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<!-- 默认激活开发配制,使用config-dev.properties来替换设置过虑的资源文件中的${key} -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<!--有多个文件时配置多个filter-->
<filter>${basedir}/filters/dev/applicationContext.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>sit</id>
<build>
<filters>
<filter>${basedir}/filters/sit/applicationContext.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>uat</id>
<build>
<filters>
<filter>${basedir}/filters/uat/applicationContext.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>pro</id>
<build>
<filters>
<filter>${basedir}/filters/pro/applicationContext.properties</filter>
</filters>
</build>
</profile>
</profiles>
3、打不同环境的包
mvn clean install -P
+ filter的id值
例:
- 打sit包
mvn clean install -P sit
- 打生产包
mvn clean install -P pro