说明
本篇主要展示两种不同的方式构建环境隔离,第一是利用filter,第二种是配置maven插件的方式。构建的环境分dev和pord两种环境。代码已经放到github上,讲解过程中涉及比较多的文件和代码,建议各位先把代码下载下来,配合代码看这片文章。
示例通过IDEA构建,构建环境隔离主要是通过修改pom.xml文件。通过单元测试和maven命令构建的方式来测试结果,不会使用IDEA的小伙伴也能参照使用。
1 filter模式
正如字面意思所表达的那样,你可以指定需要过滤的文件,然后根据你环境配置的属性,应用到指定过滤的文件上。所有通过这种方式实现的环境隔离,需要指定属性和过滤的文件。示例参见:https://github.com/gitlxp1101/isolation/tree/model1
1.1 添加属性
添加属性的方式有两种,第一是直接在properties下添加相应的属性,如下,我添加了person.name和person.agel两个属性。
<properties>
<person.name>jack</person.name>
<person.age>55</person.age>
</properties>
上面那种情况适用于属性较少的情况,通常用于配置日志的隔离级别。但对于一个比较大的项目,往往需要配置很多属性,如果全部配置在properties下,整个pom文件就会很大,可读性大大降低。所有我们可以采取第二种方式,将这些属性专门添加到一个文件中。比如,我将所有属性放到一个名为filter-dev.properties文件中(演示项目中与src是同一级目录),然后添加如下配置。
<build>
<filters>
<filter> filter-dev.properties</filter>
</filters>
</build>
filter-dev.properties内容如下
school.name=dev-university
1.2 配置文件过滤
属性配置好了,现在还需要指定那些文件需要被过滤。如下代码,指定filtering为true,表示src/main/resources目录下所有的文件都会被过滤。
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 启用过滤 -->
<filtering>true</filtering>