目錄
用法一
說明:當一個父pom中的dependencyManagement 標簽中需要導入另一個pom中的dependencyManagement的時候,必須同時使用<scope>import</scope> 和 <type>pom</type>
例子:
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.1.BUILD-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
這個時候,該pom中dependencyManagement就會包含導入的spring-boot-dependencies中的所有dependencyManagement
這是為了解決pom類型的父工程單繼承的問題,通過導入,可以導入各種其他父工程的dependencyManagement
注意:dependencyManagement只在父工程(即pom類型的maven工程)中聲明,在子工程中定義無需聲明版本從而生效。如果在jar類型的maven工程中添加了dependencyManagement,是沒有意義的。
用法二
說明:當需要把一些依賴定義到一個pom工程中,但是由於maven單繼承機制,子工程又想通過依賴引入該pom工程中的所有依賴,只需要添加<type>pom</type>
例子:
<dependencies> <dependency> <groupId>org.sonatype.mavenbook</groupId>
<artifactId>persistence-deps</artifactId>
<version>1.0</version> <type>pom</type> </dependency>
</dependencies>
這是為了解決子工程單繼承的問題,通過<type>pom</type>可以依賴於其他的pom父工程,從而將pom工程中的依賴都傳遞過來
type 默認是jar,依賴jar工程時可以不寫type標簽,所以如果依賴於一個jar工程,而jar工程中包含大量的依賴,也會一起傳遞過來,這也就是maven依賴傳遞的原理。