在Spring Boot
中多環境配置文件名須要知足application-{profile}.yml
的格式,其中{profile}
對應你的環境標識;java
application-dev 開發環境 application-test 測試環境 application-prod 生產環境 複製代碼
若是咱們要激活某一個環境,只須要在 application.yml
裏:git
spring: profiles: active: dev 複製代碼
此外,假設咱們配置一些基本設置如:spring
application-dev.yml
bash
server: port: 9001 複製代碼
application-test.yml
markdown
server: port: 9002 複製代碼
application-prod.yml
app
server: port: 9003 複製代碼
此時,當咱們去修改application.yml
:maven
dev
test
prod
經過上述步驟,能夠輕鬆切換當前環境,不過也稍微有些麻煩,那是否有一些配置文件能夠代替手動更改profile而且能建立多環境profile打包呢
?oop
答案是確定的
複製代碼
pom.xml測試
pom文件中添加profile節點,並在build下的resources節點添加打包過濾的配置文件規則ui
<profiles> <profile> <!-- 開發環境 --> <id>dev</id> <properties> <profileActive>dev</profileActive> </properties> <!-- 默認激活的環境 --> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <!-- 測試環境 --> <id>test</id> <properties> <profileActive>test</profileActive> </properties> </profile> <profile> <!-- 生產環境 --> <id>prod</id> <properties> <profileActive>prod</profileActive> </properties> </profile> </profiles> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>application-${profileActive}.yml</include> <include>application.yml</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> 複製代碼
在application.yml
中配置一個動態屬性進行佔位,默認的分隔符是@屬性名@,這個屬性會經過maven打包時傳入參數進行替換;
spring:
profiles:
active: @profileActive@
複製代碼
右側的可視化選擇環境,讓工做更加變得高效;
maven 多環境打包
打包過濾配置文件規則也是用一個佔位符進行佔位,打包時也會經過maven傳入參數進行替換。
經過 -D命令傳入屬性值profileActive
,如:clean install -Dmaven.test.skip=true -DprofileActive=dev 複製代碼
經過-P命令指定profile環境
,如:clean package -P prod
複製代碼
右側可視化選擇更加方便:
🆗閒話很少說,好了,這一小章到此結束;
代碼倉庫地址:點擊進入