在开发过程中,需要不断进行环境的切换和打包部署,maven提供了多环境配置,可以方便实现不同环境的配置切换和打包。
一、maven配置
1.在pom文件中放入profiles多环境配置
<!-- 多环境配置 -->
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 命名要和application-dev.yml配置文件-后面的一致 -->
<profiles.active>dev</profiles.active>
</properties>
<!-- 默认激活环境 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
二、springboot yml配置
2.在application.yml文件中使用spring:profiles:active: @profiles.active@ 进行激活,可以把对应dev和prod环境对应的数据库分别放在application-dev.yml和application-prod.yml文件中使用,这样就可以maven打包的时候会根据环境来自动加载对应环境的yml文件。
spring:
profiles:
active: @profiles.active@
三、maven打包
这几种打包方式只是操作方式不同而已,其实都是一样的,最后都是一条maven命令
方式3实际的命令 mvn clean package -Dmaven.test.skip=true
方式2打包的命令和方式1一样,只不过可视化了而已
这样,在用maven打包的时候,使用 mvn clean package -Dmaven.test.skip=true -P prod打包,最后打包后的文件中,application.yml中的profiles.active的值就是prod。这样直接运行java -jar xxx.jar,就是生产环境的配置了。
方式1:使用maven命令打包(推荐使用),配合shell脚本可实现自动部署
// -Dmaven.test.skip=true 跳过测试
// -P prod 使用prod环境
mvn clean package -Dmaven.test.skip=true -P prod
方式2:idea开发工具本地打包
方式3:使用pom中环境激活
激活哪个直接打包就是什么环境
四、在代码中判断环境
@Value("${spring.profiles.active}")
private String profiles;