两种方法。不过都要用到profile
<!--多环境配置 -->
<profiles>
<!--本地开发环境 -->
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>local</env>
</properties>
</profile>
<!--测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!--生产环境 -->
<profile>
<id>prd</id>
<properties>
<env>prd</env>
</properties>
</profile>
</profiles>
这里面的< env >节点名是自定义的。
1.第一种方法,核心是把多环境的属性文件放置在各自的环境目录中
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>env/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/env/${env}</directory>
<targetPath>config/</targetPath>
</resource>
</resources>
通过这样,定义打包的时候,先排除环境相关的目录,然后再根据${env}这个变量去找到相应的环境目录,把其文件打包到指定的目标目录中。
https://blog.youkuaiyun.com/hjiacheng/article/details/57413933
2.第二种就是用filtering去替换指定目录下${}参数。就比如有三个名字不同的文件,通过profile的选择性,选择到一个真正的属性文件用作去替换指定目录中的参数
https://blog.youkuaiyun.com/wmq534/article/details/50483826