轉載自:https://blog.csdn.net/vtopqx/article/details/79034835java
在Maven多模塊的時候,管理依賴關係是很是重要的,各類依賴包衝突,查詢問題起來很是複雜,因而就用到了<dependencyManagement>,mysql
示例說明,sql
在父模塊中:.net
<dependencyManagement> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency> </dependencies> </dependencyManagement>
那麼在子模塊中只須要<groupId>和<artifactId>便可,如:code
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>
說明:xml
使用dependencyManagement能夠統一管理項目的版本號,確保應用的各個項目的依賴和版本一致,不用每一個模塊項目都弄一個版本號,不利於管理,當須要變動版本號的時候只須要在父類容器裏更新,不須要任何一個子項目的修改;若是某個子項目須要另一個特殊的版本號時,只須要在本身的模塊dependencies中聲明一個版本號便可。子類就會使用子類聲明的版本號,不繼承於父類版本號。blog
與dependencies區別:繼承
1)Dependencies相對於dependencyManagement,全部生命在dependencies裏的依賴都會自動引入,並默認被全部的子項目繼承。
2)dependencyManagement裏只是聲明依賴,並不自動實現引入,所以子項目須要顯示的聲明須要用的依賴。若是不在子項目中聲明依賴,是不會從父項目中繼承下來的;只有在子項目中寫了該依賴項,而且沒有指定具體版本,纔會從父項目中繼承該項,而且version和scope都讀取自父pom;另外若是子項目中指定了版本號,那麼會使用子項目中指定的jar版本。ci