springboot配置文件讀取pom文件信息方式
配置文件讀取pom文件信息
解決的問題
springboot(當然別的也可以)多環境切換需要修改配置文件硬編碼,打包時不夠方便。
解決
配置文件能讀取pom文件中的配置,根據命令選擇不同配置註入springboot的配置文件中
pom配置文件:
<!-- 環境 --> <profiles> <!-- 開發 --> <profile> <id>dev</id> <activation> <!--默認激活配置,maven打包默認選用的配置--> <activeByDefault>true</activeByDefault> </activation> <properties> <!--當前環境自定義配置,標簽名自定義--> <profile.name>dev</profile.name> <profile.baseUrl>http://localhost:5501</profile.baseUrl> </properties> </profile> <!-- 測試 --> <profile> <id>test</id> <properties> <!--當前環境--> <profile.name>test</profile.name> <profile.baseUrl>http://test.xxxx.com/xxx</profile.baseUrl> </properties> </profile> <!-- 生產 --> <profile> <id>prd</id> <properties> <!--當前環境,生產環境為空--> <profile.name>prd</profile.name> <profile.baseUrl>http://api.xxx.cn/xxx</profile.baseUrl> </properties> </profile> </profiles>
修改後的寫法
當然,別的配置項也能這樣寫,這樣寫的好處是隻需修改一處別的不用修改
maven打包命令
mvn clean package -Ptest 這樣就能打成測試環境的包瞭
可能會出現的一些問題
- 占位符也可以這樣寫 @配置的key@,不建議這樣使用
- 報@@ 解析錯誤,再次執行打包命令: mvn clean package -Ptest
- 修改瞭pom文件中的配置,再次啟動項目環境沒有變化,因為ide啟動的是你之前的包所以你要重新使用打包命令打個新包
Pom文件依賴配置說明
1、groupId、artifactId、version是依賴的基本坐標,缺一不可,其它兩個坐標元素不指定時將采用默認值
type
:依賴的類型,對應坐標packaging,默認為jaroptional
:標記依賴是否可選,A->B->C,那麼當A依賴於C時就可以設為可選。exclusions
:排除傳遞依賴
scope 依賴范圍
compile
:編譯范圍,默認scope,在classpath中存在provided
:已提供范圍,比如容器提供Servlet APIruntime
:運行時范圍,編譯不需要,接口與實現分離test
:測試范圍,單元測試環境需要system
:系統范圍,自定義構件,指定systemPathimport
:導入依賴
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Maven的porfile與SpringBoot的profile結合使用案例詳解
- 使用maven的profile構建不同環境配置的方法
- maven的pom.xml中profiles的作用詳解
- 一篇文章帶你搞定JAVA Maven
- 詳解Maven profile配置管理及激活profile的幾種方式