首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

《Maven实战》札记 2.5 - 依赖的调解

2012-08-08 
《Maven实战》笔记 2.5- 依赖的调解Maven的依赖调解机制1.如果存在App-A-B-0.9, 又存在App-C-D-B-1.0,

《Maven实战》笔记 2.5 - 依赖的调解
Maven的依赖调解机制
 
  1.如果存在App->A->B-0.9, 又存在App->C->D->B-1.0,那App在打包时会不会把B-0.9和B-1.0都纳入进来?如果不会,倒底选择哪个B?
   答案:只会纳入一个,即B-0.9,因为它离App较近(中间只隔了一个A,B-1.0和App之间则隔了D,C两个)

  2.App到B存在两条依赖路径,怎么识别这种情况?
   答案: mvn dependency:tree -Dverbose,它会显示哪些项目由于这种情况而被“omitted for conflict”

  3.B-0.9被选中,会不会导致依赖B-1.0的D在运行时出错?
   答案:会的。如果D依赖了B-1.0中有而B-0.9里没有的东西,就会在运行时出错

  4.那该怎么办?
   答案:
     办法1. 在App的pom里,屏蔽掉A对B的依赖

<dependency><groupId>kent.learn</groupId><artifactId>maven-a</artifactId><exclusions><exclusion><groupId>kent.learn</groupId><artifactId>maven-b</artifactId></exclusion></exclusions></dependency>


     办法2. 让App直接依赖B-1.0,让其他的对B的传递依赖都失效

热点排行