Maven与SpringBoot多环境兼容
在Maven中设置多环境属性:
<profiles>
<!-- 开发环境-->
<profile>
<id>dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
</profile>
<!--生产环境-->
<profile>
<id>pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境-->
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
</properties>
</profile>
</profiles>
第二部在SpringBoot中引用Maven属性
spring:
profiles:
active: ${profile.active}
---
spring:
config:
activate:
on-profile: dev
server:
port: 80
---
spring:
config:
activate:
on-profile: pro
server:
port: 81
---
spring:
config:
activate:
on-profile: test
server:
port: 82
但是单单这样,yml文件,也就是SpringBoot文件解析不了${profile.active},需要在Maven里面设置对资源文件开启默认占位符解析
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
配置文件分类
- SpringBoot中4级配置文件
1级: file : config/application.yml 最高的
2级: file : application.yml
3级: classpath: config/application.yml
4级: classpath: application.yml 最低的
34级对应开发服务,12级对应上线服务
- 作用:
- 1级与2级留做系统打包后设置通用属性
- 3级与4级用于系统开发阶段设置通用属性