关于Maven的传递依赖原则 nearest definition 的一个疑问

原创 2015年11月18日 14:41:28
Maven 官网上说 
Dependency mediation - this determines what version of a dependency will be used when multiple versions of an artifact are encountered. Currently, Maven 2.0 only supports using the "nearest definition" which means that it will use the version of the closest dependency to your project in the tree of dependencies. You can always guarantee a version by declaring it explicitly in your project's POM. Note that if two dependency versions are at the same depth in the dependency tree, until Maven 2.0.8 it was not defined which one would win, but since Maven 2.0.9 it's the order in the declaration that counts: the first declaration wins.
  • "nearest definition" means that the version used will be the closest one to your project in the tree of dependencies, eg. if dependencies for A, B, and C are defined as A -> B -> C -> D 2.0 and A -> E -> D 1.0, then D 1.0 will be used when building A because the path from A to D through E is shorter. You could explicitly add a dependency to D 2.0 in A to force the use of D 2.0

在编译A的时候如果没有指明依赖中D的版本,那么Maven默认会把离得近的D拿来用,如果一样近,则选择先声明的版本,这种规则会不会导致错误?比如C用到了D 2.0的新特性,但是因为nearest definition原则导致最终在编译A的时候采用的是D 1.0于是导致A中使用到B的地方出现了问题?

但其实这个问题也maven也没有什么关系- -


版权声明:本文为博主原创文章,未经博主允许不得转载。

maven的依赖传递性讲解

在日常项目中经常会碰到maven依赖问题,尤其是碰到类似struts的jar包升级,每一次都要动很多项目,有些间接依赖会导致,为了搞清楚maven整个依赖qing'kuan 原文引用自:http://...
  • elricboa
  • elricboa
  • 2017年04月16日 23:50
  • 1833

Maven的传递性依赖及其jar包冲突解决

一、Maven简介 Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。 二、Maven的依赖管理 ...
  • honghailiang888
  • honghailiang888
  • 2016年11月03日 11:47
  • 6014

maven 依赖调解 依赖冲突 排除

情景再现:  项目A依赖于项目B,项目B依赖于项目C(v1), 项目A依赖于项目D,项目D依赖于项目E,项目E依赖于C(v2), 1、A--->B---->C(v1) ,     2、A------>...
  • wangjun5159
  • wangjun5159
  • 2015年10月13日 11:05
  • 1543

疑问:【动态性能视图】v$fixed_table和v$fixed_view_definition - OCM联盟

v$fixed_table这个视图中存储的是oracle的基表,可是当我们desc的时候会发现,里面有个字段是type,如下: SYS@ORA10G>desc v$fixed_table  Name...
  • haiross
  • haiross
  • 2014年01月20日 16:27
  • 627

mainfest的一个bug疑问,主要看stdafx.h

  • 2010年06月18日 17:34
  • 23KB
  • 下载

关于maven自动处理版本冲突的原则和调整依赖的方法

使用pom.xml文件添加dependecy(依赖)的时候,虽然,我们定义的dependecy不可能存在同一个依赖有两个版本,但是由于依赖还会引用别的依赖,这个时候就会有依赖冲突的情况出现。比如我们的...
  • xiehmlj
  • xiehmlj
  • 2017年07月12日 09:45
  • 411

.NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)

1.1.疑问 1.1.1.UML何用 1.1.2.领域建模 1.2.模式 1.3.原则 1.4.工具 1.5.过程 1.6.框架 1.7.项目演示 最近在研究DDD颇有收...
  • wangqingpei557
  • wangqingpei557
  • 2013年04月07日 17:43
  • 1491

持续集成:软件质量改进和风险降低之道&Maven; 实践&敏捷软件开发——原则、模式与实践

  • 2013年01月16日 14:13
  • 73.83MB
  • 下载

答读者问(25):一个大三学生有关专业学习的相关疑问及答复

最近,在CSDN博客上,我收到了一位大三学生发来的私信,内容如下:       周老师:        你好,我是浙大一名大三学生,是自动化转计算机的,只有一点C和C#基础,没动手写过什么正式的程序,...
  • zhouzxi
  • zhouzxi
  • 2015年03月19日 16:54
  • 1539

答读者问(16):一个研二学生有关论文和学习的相关疑问

最近我收到一位研二学生朋友的邮件,内容如下:        您好,请允许我称呼你为师兄,我一直关注您的CSDN博客;我是某工科大学研2学生,后年毕业,本科和读研都是计算机专业;我有几个问题请教一下: ...
  • zhouzxi
  • zhouzxi
  • 2014年09月19日 08:45
  • 2347
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Maven的传递依赖原则 nearest definition 的一个疑问
举报原因:
原因补充:

(最多只允许输入30个字)