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的值。

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