11-Maven: Maven依赖传递, 以及传递失效问题以及Scope用法
2017-04-20 16:06
393 查看
依赖关系 :依赖多个项目,这些项目中有相同jar包,但版本不同,那选择哪个呢?
现在有三个项目:Hello, HelloFriend, MakeFriend,
在Hello,HelloFriend分别引入了不同版本的log4j-1.2.9.jar,log4j-1.2.17.jar,
三个项目关系是HelloFriend依赖了Hello,MakeFriend依赖了HelloFriend;
Maven依赖关系有冲突时,采用原则:
1.路径最近者优先:
如:HelloFriend离MakeFriend最近,就采用HelloFriend中的jar
2. 路径相同,第一声明者优先
如:Hello比HelloFriend前生明,就采用HelloFriend中的jar
注:但是在测试路径最近者优先,
在MakeFriend中并没有引入到log4j:
如:
在Hello项目中的pom.xml引入了一个log4j-1.2.9.jar的包:
在HelloFriend项目中的pom.xml引入了Hello项目和一个log4j-1.2.17.jar的包:
在MakeFriend项目中的pom.xml引入HelloFriend项目:但是注意在MakeFriend项目中并没有引入到依赖项目的log4j包,
解决办法:
注意Hello和HelloFriend的项目截图,有一个标签scope值为test:
scope作用是设置传递性依赖和可选依赖。把Hello和HelloFriend项目中的cope标签值改为compile
或者删除它即可,因为作用范围的问题。修改后查看效果,就依赖引入成功:
附上scope参数说明,如下图:
2.路径最近者优先:
如:HelloFriend离MakeFriend最近,就采用HelloFriend中的jar
现在有三个项目:Hello, HelloFriend, MakeFriend,
在Hello,HelloFriend分别引入了不同版本的log4j-1.2.9.jar,log4j-1.2.17.jar,
三个项目关系是HelloFriend依赖了Hello,MakeFriend依赖了HelloFriend;
Maven依赖关系有冲突时,采用原则:
1.路径最近者优先:
如:HelloFriend离MakeFriend最近,就采用HelloFriend中的jar
2. 路径相同,第一声明者优先
如:Hello比HelloFriend前生明,就采用HelloFriend中的jar
注:但是在测试路径最近者优先,
在MakeFriend中并没有引入到log4j:
如:
在Hello项目中的pom.xml引入了一个log4j-1.2.9.jar的包:
在HelloFriend项目中的pom.xml引入了Hello项目和一个log4j-1.2.17.jar的包:
在MakeFriend项目中的pom.xml引入HelloFriend项目:但是注意在MakeFriend项目中并没有引入到依赖项目的log4j包,
解决办法:
注意Hello和HelloFriend的项目截图,有一个标签scope值为test:
scope作用是设置传递性依赖和可选依赖。把Hello和HelloFriend项目中的cope标签值改为compile
或者删除它即可,因为作用范围的问题。修改后查看效果,就依赖引入成功:
附上scope参数说明,如下图:
2.路径最近者优先:
如:HelloFriend离MakeFriend最近,就采用HelloFriend中的jar
相关文章推荐
- maven依赖传递问题处理方式
- maven 工具的依赖树以及解决版本包冲突问题
- 解决maven依赖传递中的版本冲突问题
- Maven传递依赖无法引入问题(The POM for xxx is invalid)
- maven 依赖本地jar 打包的问题以及解决方式
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- maven 私服(nexus)架设以及项目管理中遇到的问题及解决方案
- 通过P3P协议,实现跨域set cookie,解决同域IFRAME中SESSION传递失效问题
- 有关DLL中New和外部Delete以以及跨DLL传递对象的若干问题
- 传递依赖与范式的问题
- AS3中通过事件监听传递参数以及动态变量传递的问题
- maven传递依赖的版本确定规则
- 传递依赖与范式的问题
- Application对象的使用-数据传递以及内存泄漏问题
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- Maven依赖下载不到问题解决
- DLL中New和外部Delete以及跨DLL传递对象的问题
- [转载]有关DLL中New和外部Delete以以及跨DLL传递对象的若干问题
- [转载]有关DLL中New和外部Delete以以及跨DLL传递对象的若干问题
- java 中值传递与引用传递以及方法中别名的问题