1.定义
当前工程定义为'子',<parent>中的定义为'父'。
2.依赖优先级
2.1.
对于子声明了依赖,但没有version,父没有声明依赖,只在<dependencyManagement> 中规定了版本,<dependencyManagement> 从近到远,优先级降低。即对于同一依赖,用子中的依赖的版本,若没有,用父,若还没有,用父的父,父的父的父的父的父的父的父..
2.2.
子中<dependencies> 中声明了某依赖A且有version,不管<dependencyManagement>规定不规定,都用子的。
3.举例
3.1
父
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.0.0</version>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.0</version>
</dependency>
</dependencyManagement>
子没有该依赖,引用的为3.0.0
3.2
父同上
子
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<!-- <version>1.0.0</version>-->
</dependency>
无dependencyManagement,依赖版本为1.0.0,使用的父的dependencyManagement
3.3
父同上
子
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.0</version>
</dependency>
无dependencyManagement,依赖版本为1.0.0,使用的父的dependencyManagement
3.4
父同上
子
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.0</version>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.0.0</version>
</dependency>
</dependencyManagement>
子依赖版本为1.0.0,使用的自己的dependency
3.4
父
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.0.0</version>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.0.0</version>
</dependency>
</dependencyManagement>
子
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.0</version>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.0.0</version>
</dependency>
</dependencyManagement>
子依赖版本为1.0.0,使用的自己的dependency
网友评论