搜索
写经验 领红包
 > 健康

mave依赖传递性(mave依赖树依赖结构)

导语:Maven笔记之三:依赖传递

maven依赖传递性(maven依赖树依赖结构)

在《Maven笔记之一:简介、安装(Mac)和运行》和《Maven笔记之二:依赖基础scope》介绍了Maven依赖的基础,包括groupId,artifactId,version以及scope等概念。本文主要介绍下依赖传递和依赖冲突的解决方案。

依赖传递

依赖传递很简单:如果A依赖于B,B依赖于C,那么A也将依赖于C。本文用A->B表示A依赖于B。

依赖调解

假设A->B->C->E(1.0),同时A->D->E(2.0),那么路径短优先,使用E(2.0)。如果长度相同,那么就以先声明者优先。

可选依赖

使用optional元素表示该依赖为可选依赖,就是说该依赖只对当前项目有效,对依赖于当前项目的其他项目无效。比如A->B,B->C(optional=true),但是A不会依赖于C。

排除依赖

使用exclusions就可以排除当前依赖的传递依赖。比如A->B->C->E(1.0),同时A->D(E exclusion in D)->E(2.0),A还是会依赖E(1.0)版本。

依赖命令

在实际工作中可以使用如下命令来验证真正的依赖关系。

mvn dependency:list

将项目下的所有依赖以列表的形式展示出来。

mvn dependency:tree

将项目下的所有依赖以树的形式展示出来。(最常用)

mvn dependency:analyze

分析项目下的依赖是否有问题。

本文内容由小姿整理编辑!