Maven 传递性依赖
maven引入的传递性依赖机制,一方面大大简化和方便了依赖声明,另一方面,大部分情况下我们只需要关心项目的直接依赖是什么,而不用考虑这些直接依赖会引入什么传递性依赖。但有时候,当传递性依赖造成问题的时候,我们就需要清楚地知道该传递性依赖是从哪条依赖路径引入的。
例如,项目A有这样的依赖关系 : A-->B-->C-->X(1.0)、A-->D-->X(2.0)
,X是A的传递性依赖,但是两条依赖路径上有两个版 本的X,那么哪个X会被maven解析使用呢?两个版本都被解析显然是不对的,因为那会造成依赖重复,因此必须选择一个。maven依赖调解的第一原则:路径最近者优先。该例中X(1.0)的路径长度为3,而X(2.0)的路径长度为2,因此X(2.0)会被解析使用。
依赖调解第一原则不能解决所有问题,比如这样的依赖关系:A-->B-->Y(1.0),A-->C-->Y(2.0)
,Y(1.0)和Y(2.0)的依赖路径长度是一样的,都为2。那么到底谁会被解析使用呢?在maven2.0.8及之前的版本中,这是不确定的,但是maven2.0.9开始,为了尽可能避免构建的不确定性,maven定义了依赖调解的第二原则:第一声明者优先。在依赖路径长度相等的前提下,在POM中依赖声明的顺序决定了谁会被解析使用。顺序最靠前的那个依赖优胜。
Maven 传递性依赖相关推荐
- Maven传递性依赖解读
一:DependencyManagement / Dependencies的区别 dependencyManagement统一管理项目的版本号,只声明依赖,并不实现引入,因此子项目需要显示的声明需要用 ...
- [Maven实战](9)传递性依赖
了解Spring的朋友都知道,创建一个Spring Framework项目都需要依赖什么样的Jar包.如果不使用Maven,那么在项目中就需要手动下载相关的依赖.由于Spring Framework又 ...
- Maven的传递性依赖及其jar包冲突解决
一.Maven简介 Maven是一个跨平台的项目管理工具.作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理. 二.Maven的依赖管理 1. ...
- Maven 如何处理传递性依赖
maven引入的传递性依赖机制,一方面大大简化和方便了依赖声明,另一方面,大部分情况下我们只需要关心项目的直接依赖是什么,而不用考虑这些直接依赖会引入什么传递性依赖.但有时候,当传递性依赖造成问题的时 ...
- maven 依赖范围影响传递性依赖
compile test provided runtime compile compile N N runtime test test N N test provided provided N p ...
- maven 的依赖传递
1. 首先就maven的依赖传递来说:只有<scope>compile</scope>时,才能进行依赖的传递,其他的范围没有依赖传递可言!!! 2. 当依赖级别相同时, ...
- maven的依赖范围_Maven依赖范围
maven的依赖范围 介绍: 管理依赖项是Maven的核心功能. 在定义Maven依赖项时, scope属性定义了该依赖项在不同的Maven生命周期阶段(例如build,test和run)上的可见性. ...
- maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)
我们知道,maven的依赖关系是有传递性的.如:A-->B,B-->C.但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖.在maven的依赖管理中,有两种方式可以对依赖 ...
- Maven 排除依赖jar包
当我们引入第三方jar包的时候,难免会引入传递性依赖,有些时候这是好事,然而有些时候我们不需要其中的一些传递性依赖 比如我们不想引入传递性依赖commons-logging,我们可以使用exclusi ...
最新文章
- 问题集锦(26-29)
- 轴只显示5个刻度_组团投资5亿元!武平集中签约5个新型显示产业链投资项目
- 28 | 堆和堆排序:为什么说堆排序没有快速排序快?
- Codeforces 343D Water Tree(DFS序 + 线段树)
- 基于lis3dh的简易倾角仪c源码_开源网关apisix源码阅读和最佳实践
- java深入学习2多线程(面试必备)
- 我有一朋友生意做的红红火火
- 一个数组去重的简单实现
- 谷歌宣布开源 Live Transcribe 语音识别转文字工具
- 《深入剖析Tomcat》源码
- 2019年考研篇(2020毕业)
- 批量将 txt 记事本文件按照固定行数拆分成单个独立的 txt 小文件
- 【读点论文】FBNetV2:Differentiable Neural Architecture Search for Spatial and Channel D扩大搜索空间,复用featuremap
- 拉依达准则去除异常数据
- 用代码实现一场烟花盛宴,提前祝大家2022新春快乐
- 网站镶嵌网站显示代码
- 代理方式部署NER标注平台doccano
- KingBaseES 报错Connection to X.X.X.X:54321 refused.Check that the hostname and port are correct and ..
- (SWAT-3.1)关于土壤水文分组(HYDGRP)的一些资料参考
- photoshop ps 美白 去污 磨皮 方法
热门文章
- Python 多线程总结(1)- thread 模块
- 如何kill同一个应用的所有进程
- 互联网笔试各种主流语言在OJ上的的标准输入输出
- html,xml_网页开发_爬虫_笔记
- LeetCode简单题之区域和检索 - 数组不可变
- LeetCode简单题之密钥格式化
- 第一个SpringBoot程序(详细解析Grounp、Artifact等项目信息含义)
- TensorFlow多元线性回归实现
- 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置
- PHP 算法题:有多少苹果用来分赃1.1