SpringBoot多环境配置文件打包

举报
code2roc 发表于 2023/07/12 10:13:11 2023/07/12
1.1k+ 0 0
【摘要】 背景在使用springboot开发项目过程中,会有多种环境切换,例如开发环境,测试环境,演示环境,生产环境等,我们通过建立多个yml文件结合profiles.active属性进行环境指定,但是需要打包时就要手动更改配置文件逐个打包,容易造成不必要的误操作,本文就介绍如何进行不同环境配置文件的动态切换及一次性打包多个不同环境的部署包 配置pom文件pom文件添加profiles配置,项目有多...

背景

在使用springboot开发项目过程中,会有多种环境切换,例如开发环境,测试环境,演示环境,生产环境等,我们通过建立多个yml文件结合profiles.active属性进行环境指定,但是需要打包时就要手动更改配置文件逐个打包,容易造成不必要的误操作,本文就介绍如何进行不同环境配置文件的动态切换及一次性打包多个不同环境的部署包

配置pom文件

pom文件添加profiles配置,项目有多少个配置文件,添加多少个子节点,profiles标签于parent标签同级,这样我们就可以在右侧maven的配置项中勾选指定的环境

。

    <profiles>
        <profile>
            <!-- 开发环境 -->
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <!-- 默认环境 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 演示环境 -->
            <id>demo</id>
            <properties>
                <profileActive>demo</profileActive>
            </properties>
        </profile>
        <profile>
            <!-- 正式环境 -->
            <id>pro</id>
            <properties>
                <profileActive>pro</profileActive>
            </properties>
        </profile>
    </profiles>

配置打包文件名

我们需要动态的指定最终部署jar包的名字用于区分每个部署包对应的运行环境是哪一个,finalName标签与plugins标签同级

<finalName>${project.artifactId}-${profileActive}</finalName>

配置applcation.yml文件

我们需要将profiles.active文件指定为pom文件中的profileActive标签☞

profiles:
  active: @profileActive@

打包多个运行环境部署包

通过windows的bat执行脚本,批量执行mvn命令,需要在项目的src同级目录运行

call mvn clean
call mvn package -P dev
call mvn package -P demo
call mvn package -P pro
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。