1. 多环境配置文件
针对开发、测试、生产三个环境使用不同的开发配置
application.yml
server:
port: 6666
spring:
profiles:
## 获取pom文件中被激活的profile属性
active: "@profiles.active@"
group:
## 上面active的属性为dev时,application-dev.yml、application-app-dev.yml、
## application-db-dev.yml都会被应用
"dev": "dev, app-dev, db-dev"
"stage": "stage, app-stage, db-stage"
"prod": "prod, app-prod, db-prod"
后面三个不同环境的配置文件分别设置端口为1111、2222、3333
2. pom文件
<!-- 添加到根project标签的下一级 -->
<profiles>
<!-- 本地开发环境(默认) -->
<profile>
<id>dev</id>
<properties>
<!-- 自由命名,这个值会在application.yml的"@profiles.active@"取到 -->
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境 -->
<profile>
<id>stage</id>
<properties>
<profiles.active>stage</profiles.active>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
3. 编译
右侧maven里选择编译的环境,进行编译
编译后的文件在项目根目录下target/classes目录下
留坑
- 删掉target文件夹,直接运行项目,会看到application.yml没有被正确编译。
- 编译后希望只保留需要的配置文件,也没有被正确编译
<!-- build标签下添加 --> <resources> <!-- 排除 --> <resource> <directory>src/main/resources/</directory> <excludes> <exclude>**/*.yml</exclude> <exclude>**/*.properties</exclude> </excludes> </resource> <!-- 加入 --> <resource> <directory>src/main/resources/</directory> <includes> <include>application-${profiles.active}.yml</include> <include>application.yml</include> </includes> </resource> </resources>
参考
https://www.runoob.com/maven/maven-build-profiles.html