在 SpringBoot 工程里面可以通过 application-*.yml 的方式实现多环境打包。但是打包的时候会把所有的.yml配置文件都打到包里。
通过下面的方式可以实现在打包的时候只打上当前环境的配置文件
pom.xml
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<modifier></modifier>
</properties>
<activation>
<!-- 默认的,不加参数时执行这个profile -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<modifier>-test</modifier>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
<modifier>-prod</modifier>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>application-*.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>application-{profiles.active}.yml</exclude>
</excludes>
</resource>
</resources>
</build>
application.yml
spring:
profiles:
active: @profiles.active@
打包
- 命令行
以下两种maven参数都可以
- -P 参数激活相应的profile。对应pom.xml中 profiles->profile->id
- -D 指定maven属性
<!--开发环境 -->
mvn clean package
<!--测试环境 -->
mvn clean package -D profiles.active=test
<!--产品环境-->
mvn clean package -Pprod`
- IDEA MAVEN插件
通过idea右侧maven窗口勾选相应的Profiles,再package即可