IDEA配合Maven的过滤器filter配置作用之一快速切换项目环境配置文件
前言
在平时的工作中,我们都会遇到这样的场景:开发、测试和上线发布三个环节的环境配置都不尽相同,那么如何快速的在三种环境中切换呢?这就要讲到我们今天的内容,maven的过滤器filter配置。
工具
maven的pom文件
代码
<!--不同环境下的配置文件,一个profile代表一个环境-->
<profiles>
<!--测试环境配置-->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
<activation>
<!--默认选用测试环境-->
<activeByDefault>true</activeByDefault>
</activation>
<build>
<!--测试环境的白名单-->
<filters>
<filter>src/main/filters/test/jdbc-test.properties</filter>
</filters>
</build>
</profile>
<!--生产环境配置-->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
<build>
<!--生产环境的白名单-->
<filters>
<filter>src/main/filters/prod/jdbc-prod.properties</filter>
</filters>
</build>
</profile>
</profiles>
<build>
<!--白名单规则-->
<filters>
<!--env为动态赋值-->
<filter>src/main/filters/${env}/jdbc-${env}.properties</filter>
</filters>
<!--需要打包的配置文件-->
<resources>
<resource>
<directory>src/main/resources</directory>
<!--启用上文的白名单配置 false为不启用-->
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
注意
在使用spring替换${}中的变量时,不要再配置文件中写中文注释以及不能直接写“&”等特殊符号,需要再特殊符号后面加上“amp;”,方便spring读取变量值。