作用
dependencyManagement
標簽的作用:在父工程pom文件中聲明依賴,但不引入;在子工程中用到聲明的依賴時,可以不加依賴的版本號,這樣可以統一管理工程中用到的依賴版本。
示例
先創建一個項目 dependencyManagement-demo
在pom.xml內加入以下內容
<dependencyManagement><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.36</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
如下圖可以看到,<dependencyManagement>
標簽內的依賴并未引入,因為它只起到聲明作用
接下來我們改一下代碼,將 fastjson 和 guava 加到下面的 dependencies
標簽中
<dependencyManagement><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.36</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId></dependency></dependencies>
然后我們可以看到,這2個依賴也引入了,需要注意的是,在下面的 dependencies
標簽中引入依賴,并未加版本號
子項目引用父項目
接下來創建一個子項目 child
,結構如下
在子項目中引用父項目
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>dependencyManagement-demo</artifactId><groupId>org.example</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>child</artifactId>
</project>
可以看到,子項目自動繼承了父項目的依賴