背景:通常我们会用nacos之类中间件完成配置中心操作,不但配置更加隐秘,还可以进行多个环境配置的切换,但不是所有项目都使用了这些中间件,固此处记录maven配置多个运行环境的使用。
1.application.yml写入如下配置(无需修改)
spring:
profiles:
active: @profile.active@
2.新建几个配置文件,格式为application-xxx.yml
3.pom.xml中添加(看着改)
<!--定义两种开发环境-->
<profiles>
<profile>
<!--不同环境的唯一id-->
<id>dev</id>
<activation>
<!--默认激活开发环境-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--profile.active对应application.yml中的@profile.active@-->
<profile.active>dev</profile.active>
</properties>
</profile>
<!--测试环境-->
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
</properties>
</profile>
</profiles>
重新加载maven后出现
使用就是用哪个选哪个,记得重加载maven
若需打包只保留对应环境下的配置文件,可在build中添加如下代码
<resources>
<!--排除配置文件-->
<resource>
<directory>src/main/resources</directory>
<!--先排除所有的配置文件-->
<excludes>
<!--使用通配符,当然可以定义多个exclude标签进行排除-->
<exclude>application*.properties</exclude>
</excludes>
</resource>
<!--根据激活条件引入打包所需的配置和文件-->
<resource>
<directory>src/main/resources</directory>
<!--引入所需环境的配置文件-->
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<!--根据maven选择环境导入配置文件-->
<include>application-${profile.active}.yml</include>
</includes>
</resource>
</resources>