在 SpringBoot 工程里面可以通过 application-*.yml 的方式实现多环境打包。但是打包的时候会把所有的.yml配置文件都打到包里。
pom.xml
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- 默认的,不加参数时执行这个profile -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 处理文件时替换文件中的变量 -->
<filtering>true</filtering>
<excludes>
<!-- 打包时排除文件-->
<exclude>application.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!-- 打包时所包含得文件 -->
<includes>
<include>application.yml</include>
<include>application-${profiles.active}.yml</include>
</includes>
</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即可