Maven中dependencyManagement和dependencies的區別
阿新 • • 發佈:2022-03-11
Maven中dependencyManagement和dependencies的區別
Maven使用dependencyManagement元素來提供了一種管理依賴版本號的方式,通常會在一個組織或者專案最頂層的父POM中看到dependencyManagement元素
使用pom.xml中的dependencyManagement元素能讓所有子專案引用一個依賴而不用顯示地列出版本號
Maven會沿著父子層次向上走,直到找到一個擁有dependencyManagement元素的專案,然後它就會使用這個dependencyManagement元素中指定的版本號
這樣做的好處就是:如果有多個子專案都引用同一個依賴,則可以避免在每個子專案裡都宣告一個版本號,這樣當想升級或切換到另一個版本時,只需要在頂層父容器裡更新,而不需要一個一個子專案地修改;如果某個子專案需要另外的版本,只需要宣告version即可
注意:
- dependencyManagement只是宣告依賴,並不實現引入,因此子專案需要顯示得宣告需要使用到的依賴
- 如果不在子專案中宣告依賴,是不會從父專案中繼承下來的;只有在子專案中寫了該依賴項且沒有指定具體版本,才會從父專案中繼承,並且version和scope都讀取自父pom
- 如果子專案中指定了版本號,那麼會使用子專案中指定的jar版本