通过Maven自动切换开发/测试环境

导读:本篇文章讲解 通过Maven自动切换开发/测试环境,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

参考文章:Maven实现多环境配置切换

1. 问题描述

   开发环境、测试环境、生产环境——–我们的软件在不同的环境中,系统参数和配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件?Maven提供了一种方便的解决这种问题的方案,就是profile功能。

2. 定义多环境配置文件

  • 在src/main/resources下新建配置文件(yml/yaml),如下表所示:
profile 文件名 配置文件内容
全局 application.yaml 项目统一配置
test application-test.yaml 本地测试环境
dev application-dev.yaml 线上开发环境
prod application-prod.yaml 生产环境
  • 完成后的目录结构图:

    image-20210125153321772

3. 修改Maven pom配置

3.1 添加profiles配置

  • 每一个profile子节点代表一个环境,id代表maven部署打包时指定的环境参数
  • activeByDefault节点指定当前环境是否是默认环境
  • 核心是在编译过程中,读取不同的配置文件**${profileActive}**,然后再由spring去读取参数配置
<!--profiles配置-->
<profiles>
    <!--开发环境 -->
    <profile>
        <id>dev</id>
        <properties>
            <profileActive>dev</profileActive>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <!--本地环境 -->
    <profile>
        <id>test</id>
        <properties>
            <profileActive>test</profileActive>
        </properties>
    </profile>
</profiles>

3.2 添加build配置

  • application-${profileActive}.yaml 指定当前环境的配置文件,位于src/main/resources目录下
  • 若存在多个配置文件,需一一添加上。
<build>
	<!--Resource文件编译配置-->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <!--设置资源排除-->
            <excludes>
                <exclude>application*.yaml</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>application-${profileActive}.yaml</include>
                <include>application.yaml</include>
                <!--附上resources目录下的其它配置-->
                <include>logback.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
    
	<!--默认maven编译配置-->
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    
</build>

3.3 定义运行参数

  • 在全局配置文件application.yaml中定义配置文件变量(来源于profile里的标签),如图所示:

image-20210125164142846

4. 指定运行环境

4.1 本地运行

  • 本地测试时,在Maven视图选择当前的profile:

    image-20210125154426960

4.2 云端编译

  • 发布到云端开发环境时,使用以下命令打包(结尾加上 -P dev),会自动将@profileActive@替换为dev:

    mvn clean package -DskipTests=true -U -P dev
    

注:采用Jenkins部署时,若存在多种环境,可采用【参数化构建/选项参数】进行自动化地配置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/70899.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!