springboot+mvn中根据不同环境打包不同的配置文件
线上项目的配置文件中主要是区分数据库连接等一些配置
application.yml
application-dev.yml
application-prod.yml
第一步:修改application.yml
中的配置,如果没有,请添加
# Spring配置
spring:
profiles:
active: '@profiles.active@'
第二步:设置dev和prod相关配置,这个根据自己的情况来处理,我是做了数据库、Redis的不同参数,当然你可能还有不同的端口等,不贴示例了
# 应用服务 WEB 访问端口
server:
port: 8081
#数据库连接
spring:
datasource:
#配置自己的账户密码
username: xxx
password: xxx
url: jdbc:mysql://127.0.0.1:3306/my_app
driver-class-name: com.mysql.cj.jdbc.Driver
第三步:pom.xml中配置不同的参数名字
<!-- 环境 -->
<profiles>
<profile>
<!--不同环境Profile的唯一id-->
<id>dev</id>
<properties>
<!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
<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>
<!-- 打包 -->
<project>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!--①移除全部配置文件-->
<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>
</project>
这儿说明一下,为什么我要移除全部yml配置文件,我不想
将本地的开发配置打包到jar中,所以这样处理后,线上的jar包文件就只会有application.yml
和application-prod.yml
现在刷新下maven配置后,idea中就如下图效果
注明一下,切换环境后打包前最好是clean
一下
第四步:命令行打包
mvn package -P 环境名ID
mvn package -P prod
版权声明:本文为原创文章,版权归 全栈开发技术博客 所有。
本文链接:https://www.lvtao.net/dev/springboot-mvn-profile.html
转载时须注明出处及本声明