為什麼在SpringBoot+maven的專案中,所引入的依賴包可以不指定依賴的版本號?

西域藍狼發表於2020-07-22

當在Springboot專案中引入了spring-boot-starter-parent,則可以不用引入依賴包版本號,比如:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

因為它會預設提供常用依賴包的版本號,也有助於統一版本號。如果非要想自己填寫版本號也是可以的,這樣會覆蓋官方版本號(如果是新手,個人建議還是不要隨便修改依賴包版本號,免得版本號不相容)。
接下來,我們看下spring-boot-starter-parent的繼承關係就能明白,為什麼使用它之後就可以不填依賴包版本號。首先看下它的pom檔案:
開啟前:

 

開啟後:

 

開啟之後會發現spring-boot-starter-parent還有一個父依賴:spring-boot-dependencies。然後開啟這個pom檔案之後,會發現這個裡面已經有很多常用的帶有版本號的依賴包,如:

 

但是springboot提供官方統一的版本管理之外,還讓開發人員自行管理依賴包版本。如果想要自行管理版本,則建議使用dependency management來代替,然後設定jdk,編碼格式,各種依賴包等版本號就可以。

溫馨提示:對以上內容如有疑問或者需要糾正的地方,歡迎在下方評論區留言,一起交流學習!

 

相關文章