SpringBoot项目多环境指定环境打包(小白必看)

文章目录

    • 指定环境打包
    • 方式一:
    • 方式二:
    • 开心一刻

指定环境打包

现在的SpringBoot项目往往是有多个环境的,那么如何动态的指定环境打包呢

下面介绍两个方式:

两种方式,本质上没有什么区别,只是yml文件的位置不同

方式一:

1、先看下SpringBoot项目多环境下的配置信息
SpringBoot项目多环境指定环境打包(小白必看)_第1张图片

项目提供了三个环境,分别是:dev、prod、qa

先看下application.yml、以及application-dev.yml、等配置信息
SpringBoot项目多环境指定环境打包(小白必看)_第2张图片

SpringBoot项目多环境指定环境打包(小白必看)_第3张图片
application-qa.yml、application-prod.ymlapplication-dev.yml 配置是一样的。

接下来配置动态指定环境打包

2、修改pom,添加profile环境标签


    <profiles>
        <profile>
            
            <id>devid>
            <properties>
                
                
                <profile.enviroment>devprofile.enviroment>
            properties>
            
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
        profile>

        <profile>
            <id>qaid>
            <properties>
                <profile.enviroment>qaprofile.enviroment>
            properties>
        profile>

        <profile>
            <id>prodid>
            <properties>
                <profile.enviroment>prodprofile.enviroment>
            properties>
        profile>
    profiles>

3、修改application.yml配置
SpringBoot项目多环境指定环境打包(小白必看)_第4张图片
注意:此处的@profile.enviroment@不是随意写的,而是要与pom中配置的环境属性标签一致。我pom中的标签是

4、再次修改pom,在build标签里,添加resources标签

	>
     	...
     	
        >
            >
                >src/main/resources>
                >true>
                <!--资源包括:application.yml 和 application-${profile.enviroment}.yml-->
                
                    application.yml
                    application-${profile.enviroment}.yml
                
            >
        >
        
		...
    >

配置已经完成

5、打包

打开IDEA中的命令窗口
SpringBoot项目多环境指定环境打包(小白必看)_第5张图片
命令如下:

mvn clean package -Pprod -Dmaven.test.skip=true

-P:指定环境。比如:dev、prod、qa
-Dmaven.test.skip=true:跳过测试

SpringBoot项目多环境指定环境打包(小白必看)_第6张图片

进入target目录,查看application.yml中的变量是否动态修改
SpringBoot项目多环境指定环境打包(小白必看)_第7张图片

@profile.enviroment@变量已经动态替换成了prod,同时,也只把application-prod.yml文件打包进来了

方式二:

1、先看下yml的文件目录
SpringBoot项目多环境指定环境打包(小白必看)_第8张图片
2、接下来的步骤和方式一的:2、 3 一样,只是 pom中有所不同,如下

>
	...
	
        >
            <!-- 拷贝依赖 -->
            
                maven-resources-plugin
                2.6
                
                    
                        copy-resources
                        validate
                        
                            copy-resources
                        
                        
                            ${basedir}/target/classes
                            
                                
                                    src/main/resources/${profile.enviroment}
                                    true
                                
                            
                        
                    
                
            


        >

        >
            >
                >src/main/resources>
                >true>
                <!--资源包括:application.yml -->
                
                
                    application.yml
                
            >
        >
        
    ...
>

3、打包

mvn clean package -Pqa -Dmaven.test.skip=true

target目录如下:
SpringBoot项目多环境指定环境打包(小白必看)_第9张图片

此时dev、prod、qa对应的文件夹都没打包进来,只是把application-qa.yml动态的打包进来了

开心一刻

美术馆发生了火灾,工作人员清点整理后,向上级汇报:“虽然火灾很严重,但我们还算幸运。”
上级稍微松了口气,问:“被烧毁的只是少数,是吧?”
工作人员摇摇头,说:“馆内的画基本都被烧毁了,但最珍贵的那幅画,幸好不久前被盗走了。”

在这里插入图片描述

你可能感兴趣的:(SpringBoot,Maven)