Spring boot 项目多环境打包控制
2019-09-17
1,902 views
3 min read
在进行项目开发的时候通常会遇到环境切换的问题,例如开发环境和生产环境。不同的环境通常有不同的配置,例如数据库,redis等等。每次切换环境再手动修改配置文件明显是不可取的,今天分享一下Spring boot
项目通过Maven
控制代码环境。
配置文件
首先是配置文件
application.yml
spring:
profiles:
active: @profileActive@
application.yml
主要用于控制环境以及一些通用的配置。@profileActive@
即为环境变量,在pom.xml
里会用到。
application-dev.yml
和application-prod.yml
分别为开发和线上环境的配置文件,通过@profileActive@
即可切换。
application-dev.example.yml
和application-prod.example.yml
用于上传到git等版本控制工具,配置文件因人而异,通常不会上传到版本控制里。
pom.xml
首先创建两个profile
,dev
和prod
。在使用package
命令打包时用-P
指定环境,例如package -P prod
就会使用生产环境配置文件进行打包。
profiles标签在project标签下
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<!-- 打包的默认选项 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
在build
标签下加入以下标签,使打包后文件名变为 项目名-环境-版本
<finalName>${project.artifactId}-${profileActive}-${project.version}</finalName>
在build
标签下加入以下标签,让打包完成的包只包含当前环境文件
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 开启过滤替换功能-->
<filtering>true</filtering>
<includes>
<!-- 项目打包完成的包中只包含当前环境文件 -->
<include>application.yml</include>
<include>application-${profileActive}.yml</include>
</includes>
</resource>
</resources>
idea配置
配置完pom.xml
文件后,此时启动项目的话项目会找不到配置文件从而使用默认配置。打开idea的Run/Debug Configurations,选中自己的项目,指定Active profiles
再创建一条Maven命令,用于打包生产环境。
Previous Post
Token身份验证 过期自动刷新
Next Post
使用neo4j数据库管理用户关系
Or you can contact me by Email