SpringBoot项目在不同环境下的配置以及打包方式
一、概述
配置三个配置文件,只需要打包的时候,根据不同环境打包不同的配置文件
application.yml 是启动服务时,Spring会自动加载的配置文件
application-dev.yml 代表的是开发环境时的配置文件
application-test.yml 代表的是生产环境的配置文件
二、配置文件的加载设置
在服务启动时,Spring会自动加载application.yml,所以我们只需在这个配置文件中设置,需要哪个就加载哪个就好了。
在服务启动加载的时候,服务器就会加载application.yml文件,然后通过配置去调用application-dev.yml文件,加载开发环境配置。当active: test,那么服务在启动时,Spring就会调用application-test.yml文件,加载测试环境配置。
三、Maven不同环境的打包
进行动态的调用不同的配置文件,前提条件是拥有多个配置文件
首先来进行配置pom.xml
<profiles> <!--与build标签同级别,放在project标签中--> <!--这是开发环境--> <profile> <id>dev</id> <properties> <!-- 环境标识,需要与配置文件的名称相对应 --> <activatedEnv>dev</activatedEnv> </properties> <activation> <!-- 默认环境 --> <activeByDefault>true</activeByDefault> </activation> </profile> <!--这是测试环境--> <profile> <id>prod</id> <properties> <activatedEnv>prod</activatedEnv> </properties> </profile> </profiles>
然后application.yml 配置动态的使用
spring:
profiles:
active: @activatedEnv@
@activatedEnv@ ,使用的就是我们在pom.xml里设置的<activatedEnv> ,当需要Maven打包时,就会用这个值
打包开发环境(删除原有的包,排除test文件夹的内容,使用开发环境配置打包):
mvn clean package -P dev -Dmaven.test.skip=true
打包测试环境:
mvn clean package -P test -Dmaven.test.skip=true
根据需要两者选其一吧,当然打包语句略有不同。
PS:转===》https://blog.csdn.net/m0_51295655/article/details/121779530
如有帮助希望点个推荐;如果没帮助到或者内容有错误,可以下面留言,谢谢!