springboot+maven多環(huán)境動(dòng)態(tài)配置及編譯失敗的解決方案(步驟詳解)
一、前言
在我們的項(xiàng)目開發(fā)過程中一般會(huì)有多套的環(huán)境,比如比較常見的會(huì)有三套: dev (研發(fā)環(huán)境),test(測(cè)試環(huán)境),prod(生產(chǎn)環(huán)境)。
application.yml 是主配置文件,當(dāng)在不同的環(huán)境中需要激活不同環(huán)境的配置文件,改動(dòng)active 后面的value即可。但是這種方式有個(gè)弊端,需要每次手動(dòng)改動(dòng)才生效,不靈活,有沒有一個(gè)比較簡(jiǎn)便的方式呢?其實(shí)maven給我們提供一種在編譯階段時(shí)動(dòng)態(tài)修改激活環(huán)境的參數(shù)的方法。
二、springboot+maven多環(huán)境動(dòng)態(tài)配置
其實(shí)很簡(jiǎn)單,只需要2步即可
2.1 修改application.yml
application.yml 中的active哪一行改成:
spring: profiles: active: @profiles.active@
2.2 maven中添加profile配置
<!-- 添加到根project標(biāo)簽的下一級(jí) --> <profiles> <!-- 本地開發(fā)環(huán)境(默認(rèn)) --> <profile> <id>dev</id> <properties> <!-- 自由命名,這個(gè)值會(huì)在application.yml的"@profiles.active@"取到 --> <profiles.active>dev</profiles.active> </properties> <!-- 默認(rèn)激活dev環(huán)境--> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- 測(cè)試環(huán)境 --> <profile> <id>test</id> <properties> <profiles.active>test</profiles.active> </properties> </profile> <!-- 生產(chǎn)環(huán)境 --> <profile> <id>prod</id> <properties> <profiles.active>prod</profiles.active> </properties> </profile> </profiles>
在maven中加完以上配置,就可以在idea 的右側(cè)看到dev的配置已經(jīng)激活。
點(diǎn)擊小錘子進(jìn)行編譯,會(huì)發(fā)現(xiàn)application.yml中的 @profiles.active@ 編譯完以后 就被替換成 dev
2.3 編譯時(shí)如何動(dòng)態(tài)切換呢
方法一:通過idea的可視化界面進(jìn)行操作
方案二:通過maven 編譯命令指定參數(shù)
mvn compile -P prod
可以看到編譯完成以后的文件 active 已經(jīng)變成 prod 了。
2.4 無(wú)法編譯成功或正常啟動(dòng)的解決方案
使用 idea的小錘子進(jìn)行編譯。或者直接啟動(dòng)項(xiàng)目可能會(huì)出現(xiàn) 無(wú)法替換掉 application.yml 中active: @profiles.active@,建議使用 2.3 中的 方案一和方案二進(jìn)行編譯,編譯成功以后,只要不執(zhí)行maven clean 命令則就一直能用。
到此這篇關(guān)于springboot+maven多環(huán)境動(dòng)態(tài)配置及編譯失敗的解決方案的文章就介紹到這了,更多相關(guān)springboot maven多環(huán)境動(dòng)態(tài)配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在idea中利用maven實(shí)現(xiàn)多環(huán)境配置自動(dòng)打包的流程步驟
- maven如何使用profiles多環(huán)境配置
- SpringBoot使用Maven實(shí)現(xiàn)多環(huán)境配置管理
- Maven分步詳解多環(huán)境配置與應(yīng)用流程
- Springboot與Maven多環(huán)境配置的解決方案
- maven profile實(shí)現(xiàn)多環(huán)境配置的示例
- 使用maven profile指定配置文件打包適用多環(huán)境的方法
- maven打包時(shí)配置多環(huán)境參數(shù)的實(shí)現(xiàn)
相關(guān)文章
Java的方法和this關(guān)鍵字如何理解與應(yīng)用
Java語(yǔ)言中的“方法”(Method)在其他語(yǔ)言當(dāng)中也可能被稱為“函數(shù)”(Function)。對(duì)于一些復(fù)雜的代碼邏輯,如果希望重復(fù)使用這些代碼,并且做到“隨時(shí)任意使用”,那么就可以將這些代碼放在一個(gè)大括號(hào){}當(dāng)中,并且起一個(gè)名字。使用代碼的時(shí)候,直接找到名字調(diào)用即可2021-10-10Springboot整合easyexcel實(shí)現(xiàn)一個(gè)接口任意表的Excel導(dǎo)入導(dǎo)出
本文主要介紹了Springboot整合easyexcel實(shí)現(xiàn)一個(gè)接口任意表的Excel導(dǎo)入導(dǎo)出,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02java利用mybatis攔截器統(tǒng)計(jì)sql執(zhí)行時(shí)間示例
這篇文章主要介紹了java利用mybatis攔截器統(tǒng)計(jì)sql執(zhí)行時(shí)間示例,該攔截器攔截mybatis的query和update操作,能統(tǒng)計(jì)sql執(zhí)行時(shí)間2014-03-03Java實(shí)現(xiàn)隨機(jī)生成大小寫混合的卡密的步驟
在現(xiàn)代軟件開發(fā)中,生成隨機(jī)卡密是一個(gè)常見的需求,尤其是在需要為用戶生成唯一識(shí)別碼或安全令牌的場(chǎng)景中,卡密通常由數(shù)字和字母組成,有時(shí)還會(huì)包含特殊字符,本文通過代碼講解的非常詳細(xì),需要的朋友可以參考下2024-11-11JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例
這篇文章主要介紹了JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-10-10Java elasticSearch-api的具體操作步驟講解
這篇文章主要介紹了elasticSearch-api的具體操作步驟講解,本文通過詳細(xì)的步驟介紹和圖文代碼展示講解了該項(xiàng)技術(shù),需要的朋友可以參考下2021-06-06JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例
這篇文章主要介紹了JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07