在Maven多模塊的時候,管理依賴關系是非常重要的,各種依賴包沖突,查詢問題起來非常復雜,於是就用到了<dependencyManagement>。
示例說明
在父模塊中:
<dependencyManagement> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency> </dependencies> </dependencyManagement>
那么在子模塊中只需要<groupId>和<artifactId>即可,如:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>
說明
使用dependencyManagement可以統一管理項目的版本號,確保應用的各個項目的依賴和版本一致,不用每個模塊項目都弄一個版本號,不利於管理,當需要變更版本號的時候只需要在父類容器里更新,不需要任何一個子項目的修改;如果某個子項目需要另外一個特殊的版本號時,只需要在自己的模塊dependencies中聲明一個版本號即可。子類就會使用子類聲明的版本號,不繼承於父類版本號。
與dependencies區別
1)Dependencies相對於dependencyManagement,所有生命在dependencies里的依賴都會自動引入,並默認被所有的子項目繼承。
2)dependencyManagement里只是聲明依賴,並不自動實現引入,因此子項目需要顯示的聲明需要用的依賴。如果不在子項目中聲明依賴,是不會從父項目中繼承下來的;只有在子項目中寫了該依賴項,並且沒有指定具體版本,才會從父項目中繼承該項,並且version和scope都讀取自父pom;另外如果子項目中指定了版本號,那么會使用子項目中指定的jar版本。
————————————————
版權聲明:本文為CSDN博主「漫天雪_昆侖巔」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/vtopqx/article/details/79034835