进阶篇-SpringBoot2.x Maven多环境配置「建议收藏」

进阶篇-SpringBoot2.x Maven多环境配置「建议收藏」在实际开发过程中,可能需要不断进行环境的切换和打包部署,通常我们会选择在 application.yml 中修改不同环境对应的配置文件,这种方式

大家好,欢迎来到IT知识分享网。

1.本篇前言

在实际开发过程中,可能需要不断进行环境的切换和打包部署,通常我们会选择在 application.yml 中修改不同环境对应的配置文件,这种方式不仅效率低,而且很容易发生错误,造成不必要的麻烦降低工作效率。maven提供了多环境配置,可以方便实现不同环境的配置切换和打包

2. 项目实战

2.1 准备配置文件

通常我们在开发过程中分为开发,测试,生产环境,当然在某些公司还有更多比如预发布等环境。我们这里就以开发,测试,生产三个为例。

准备四个配置文件,分别是application.yml、application-dev.yml、application-test.yml、application-prod.yml。

进阶篇-SpringBoot2.x Maven多环境配置「建议收藏」

application.yml作为主配置文件,里面定义了需要激活的环境,如下:

spring:
  application:
    name: springboot-multiple-env
  profiles:
    active: @profile.active@

IT知识分享网

application-dev.yml、application-test.yml、application-prod.yml分为对应开发,测试,生产三个环境配置。我们这里以不同环境的server.port端口不同为例,在示例开发中不同环境的数据库等配置都可以如此配置。
application-dev.yml

IT知识分享网server:
  port: 8080

application-test.yml

server:
  port: 8081

application-prod.yml

IT知识分享网server:
  port: 8082

##2.2 POM文件配置
maven中提供了profile的支持,每个profile能够定义自己的一些依赖和配置和激活条件,profile配置如下:

 <!--定义三种开发环境-->
    <profiles>
        <profile>
            <!--不同环境的唯一id-->
            <id>dev</id>
            <activation>
                <!--默认激活开发环境-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
        </profile>

        <!--测试环境-->
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
            </properties>
        </profile>

        <!--生产环境-->
        <profile>
            <id>prod</id>
            <properties>
                <profile.active>prod</profile.active>
            </properties>
        </profile>
    </profiles>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <delimiters>
                        <delimiter>@</delimiter>
                    </delimiters>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>
    </build>

2.3 测试结果

如果是Idea开发,可以在此进行环境切换

进阶篇-SpringBoot2.x Maven多环境配置「建议收藏」

通过切换环境,我们启动项目可以看到端口已经改变。

进阶篇-SpringBoot2.x Maven多环境配置「建议收藏」

进阶篇-SpringBoot2.x Maven多环境配置「建议收藏」

2.4 多环境maven打包

使用maven命令打包(推荐使用),配合shell脚本可实现自动部署。

mvn clean package -Dmaven.test.skip=true -P dev
mvn clean package -Dmaven.test.skip=true -P test
mvn clean package -Dmaven.test.skip=true -P prod

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6897.html

(0)
上一篇 2023-01-03 09:55
下一篇 2023-01-03 09:55

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信