在maven的專案中經常遇到dependencies與dependencyManagement,那么兩者有什么區別和聯系呢?
DepencyManagement的應用場景
主要應用于多module專案中,有多個子專案共同依賴于某一個jar包,確保這個jar包的版本一致非常有必要,特別是某個包升級以后,不需要在所有的用到的子專案中一一的去修改dependency的version版本號,我們只需要在父專案中DepencyManagement中添加該依賴jar包的maven坐標和版本號,在子專案中的dependencies中只需要添加改jar包的maven坐標,無需再次添加version,更新版本的時候,只需要更新DepencyManagement中的version即可,Maven會沿著父子層次向上走,直到找到一個擁有dependencyManagement元素的專案,然后它就會使用在這個dependencyManagement元素中指定的版本號,
Dependencies
Dependencies就是直接引入依賴的jar包,如果在多子專案的父專案中直接使用Dependencies,相當于下面所有的子專案自動引入這些jar依賴包,
區別
dependencyManagement里只是宣告依賴,并不實作引入,因此子專案需要顯示的宣告需要用的依賴,如果不在子專案中宣告依賴,是不會從父專案中繼承下來的;只有在子專案中寫了該依賴項,并且沒有指定具體版本,才會從父專案中繼承該項,并且version和scope都讀取自父pom;另外如果子專案中指定了版本號,那么會使用子專案中指定的jar版本,
dependencies即使在子專案中不寫該依賴項,那么子專案仍然會從父專案中繼承該依賴項(全部繼承)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/423454.html
標籤:其他
