我们在开发的时候一般至少会有两个环境,开发和正式环境,对于配置文件,肯定是不一致,那么如何在打包的时候不考虑这个问题,就可以使用maven的环境隔离来处理了
修改pom文件为下面如此
<build>
<!-- maven环境隔离 -->
<resources>
<resource>
<!-- deply.type 对应环境列表的properties里面的属性 -->
<directory>src/main/resources.${deply.type}</directory>
<excludes>
<exclude>*.jsp</exclude>
</excludes>
</resource>
<!-- 基目录,放开发环境和正式环境共有的配置 -->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
<!-- 环境列表 -->
<profiles>
<profile>
<id>dev</id>
<!-- 不指定环境时dev为默认 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<deply.type>dev</deply.type>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<deply.type>prod</deply.type>
</properties>
</profile>
</profiles>
然后在maven项目中新加两个源码包
一个为 src/main/resources.dev 一个为 src/main/resources.prod
建完的目录为
然后就是在打包的时候加一个参数 -P dev 指定 dev 包
在eclipse中配置顺便先 clean
clean package -P dev
打完的结果为 只加载了 dev 下面的文件
相反的指定prod则只有prod下的文件
不指定的话就加载配置了<activeByDefault>true</activeByDefault> 的那个环境的数据
需要注意的是这个环境隔离只对 package有效,对 install 好像是无效的,我试过几次,都不行
参考文章
https://blog.youkuaiyun.com/matchlesshreo/article/details/78630862