关于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-definition-guide_zh.pdf

  • 2011-04-22 14:05
  • 6.61MB
  • 下载

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

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

解答客户一个关于clob存储的疑问

《早期博客迁移博文》 这是前些日子时候一个客户向我咨询的一个问题,今天空出手来,整理出来与大家分享下。客户发过来的是两张截图,不过为保护客户数据信息安全,因此不便将原图贴出,不过我仍会以最清晰的方式...

关于“静态变量不能跨函数使用”的一个疑问

对于最终结果输出的值与对应的i值相同我并不感到奇怪,因为虽然i变量对应的内存单元被释放了,但这块单元内部的值并不会立刻被改变,释放只是说明它可以被重新使用,所以,如果能够操作i变量对应的地址,那么就可...

对《深入C++对象模型》中的一个疑问——虚函数表的type_info的位置

vptr指向的第一个位置是第一个虚函数的地址,不是type_info

关于汉诺塔问题的一个疑问

本文是一个汉诺塔的非递归算法,但是我疑问的为什么最大只能够输入31?超过就显示不能正确执行程序? #include using namespace std; //圆盘的个数最多为64 co...

[Android] 使用ActionBar的Up导航的简介及一个疑问

Up,返回该app的逻辑层级的上一层,即parentActivity。 Back,返回back stack的上一个activity。   使用Up导航的方法: 在Android 4.1上,只需要声明该...

一个操作系统的实现第九章源代码出错解决过程及疑问

运行chapter9/b源代码, bochs虚拟机终端会打印如下信息: Exception! --> #UD Invalid Opcode (Undefined Opcode) EFLAG...

objective-c 内存储器管理之 "autorelease"的一个疑问

objective-c 内存储器管理之 "autorelease"的一个疑问 objective-c 内存管理之 "autorelease"的一个疑问   autorele...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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