為什么Spring Boot項目引入依賴的時候可以不指定依賴的版本號


最近在Spring Boot 項目中引入依賴的時候注意到一個問題:引入的依賴不指定版本號,項目正常運行,如下方

 

 

 這其中涉及到兩個方面的知識:

一,多級項目中maven子項目繼承了父項目pom.xml中dependencyManagement標簽下對應的依賴,dependencyManagement的作用其實相當於一個對所依賴jar包進行版本管理的管理器。

  1、如果dependencies里的dependency自己沒有聲明version元素,那么maven就會到dependencyManagement里面去找有沒有對該jar進行過版本聲明,如果有,就繼承它,如果沒有就會報錯,告訴你必須為dependency聲明一個version

  2、如果dependencies中的dependency聲明了version,那么無論dependencyManagement中有無對該jar的version聲明,都以dependency里的version為准

二、maven項目的父pom為spring-boot-starter-parent,而spring-boot-starter-parent的父pom是spring-boot-dependencies,該pom中dependencyManagement標簽中聲明了許多常見的依賴版本,如果自己的pom中沒有聲明,那么就默認用spring-boot-dependencies中聲明的pom版本

 

所以,在引入依賴的時候,即使你不指定依賴的版本,Spring Boot 也會通過Maven 的繼承關系,引入依賴的版本,從而完成版本的統一

 

注:

今天碰到一點點問題,總結就是:如果父pom中直接使用<dependencies>....</dependencies>的方式申明jar,子項目則可以直接使用該jar而不需要申明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM