maven中的dependencyManagement


Maven使用dependencyManagement元索來提供了一種管理依賴版本號的方式。

通常會在一個組織或者項目的最頂層的父POM中看到dependencyManagement元索。


使用pom.xml中的dependencyManagement元索能讓所有在子項目中引用一個依賴而不用顯 式的列出版本號。
Maven會沿着父子層次向上走,直到找到一個擁有dependencyManagement 元素的項目,然后它就會使用這個
dependencyManagement元素中指定的版本號。

例如在父項目中:

 

<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysq1</groupId>
<artifactId>mysq1 - connector-java< /artifactId>
<version>5.1.2</version>
</dependency>
...
<dependencies>
</dependencyManagement>

 

然后在子項目里就可以添加mysql-connector時可以不指定版本號,例如:

xml:

<dependencies>
<dependency>
<groupId>mysq1</groupId>
<artifactId>mysql -connector- java</artifactId>
</dependency> 
</dependencies>

這樣做的好處就是:如果有多個子項目都引用同-樣依賴,則可以避免在每個使用的子項目里都聲明一個版本號,這樣當想升級或切換到另一個版本
時,只需要在頂層父容器里更新,而不需要一個個子項目的修改;另外如果某個子項目需要另外的一個版本,只需要聲明version就可。

* dependencyManagement埋只是聲明依賴, 並不實現引入,因此子項目需要顯示的聲明需要用的依賴。

* 如果不在子項目中聲明依賴,是不會從父項目中繼承下來的;只有在子項目中寫了該依賴項,並且沒有指定具體版本,才會從父項目中繼承該項,並aversion和scope都讀取自父pom

* 如果子項目中指定了版本號,那么會使用子項目中指定的jar版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM