SpringBoot项目不同环境的打包方案

分两个场景进行阐述:

一、单工程

通常分为开发环境(dev)和生产环境(prod)。让我们开始吧!

1、在src/main/resources/下面创建两个文件application-dev.yml,application-prod.yml。两个文件里面分别写开发和生产环境的配置参数,如:

2、所有程序需要的配置参数已经写到配置文件里面了,那么原来的application.yml就不能再写这些配置参数了。它的作用是要指定编译打包时读取哪个配置文件,因此只要写入:

表示读取application-dev.yml。如果把dev改成prod则表示读取application-prod.yml。这样就实现了不同环境的打包方案。

二、多个子工程时如何实现

1、在子工程的application.yml里面配置个性化的部分,如:

公共部分如mysql数据库参数配置项放到公共的配置文件application-common.yml文件里面。编译打包时为了加载它,就要在application.yml里面加上一句:spring.profiles.include=common,(yml的写法请自行转换)。

2、再来看application-common.yml怎么个写法,通常可以把mysql配置参数、redis配置参数、oss、sms等共同需要的配置写在里面。然而我们同样需要分开发、测试、生产等多个环境,不同环境配置参数取值是不同的,所以这里只写入一句:spring.profiles.active=@environment@,(yml的写法请自行转换),这里的environment是变量,它会被dev、test、prod替换,怎么替换后面再说。

3、再创建不同环境对应的配置文件:application-dev.yml、application-test.yml、application-prod.yml。common文件里面的environment变量值会决定加载那个文件。

4、像mysql,redis等公共配置参数可以写到application-common.yml文件里面,参数值用变量,如下:

加载时从dev或者test或者prod的yml文件读取,如dev的yml内容:

5、至此就可以通过maven命令来给不同环境编译打包了。为了更方便,要把不同环境的打包命令写到脚本里面,如下:

脚本内容参考如下:

可以看到-Pprod就是environment的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章