maven3实战之坐标和依赖(传递性依赖)
来源:互联网 发布:servlet向网页传递数据 编辑:程序博客网 时间:2024/04/28 17:51
maven3实战之坐标和依赖(传递性依赖)
----------
1.何为传递性依赖
假如有一个account-email项目,该项目有一个org.springframework:spring-core:2.5.6的依赖,而实际上spring-core也有它自己的依赖,我们可以直接访问位于中央仓库的该构件的POM: http://repo1.maven.org/maven2/org/springframework/spring-core/2.5.6/spring-core-2.5.6.pom。该文件包含了一个commons-logging依赖。该依赖没有声明依赖范围,那么其依赖范围就是默认的compile。同时回顾一下account-email,spring-core的依赖范围也是compile。account-mail有一个compile范围的spring-core依赖,spring-core有一个compile范围的commons-logging依赖,那么commons-logging就会成为account-email的compile范围依赖,commons-loggins是account-email的一个传递性依赖。
有了传递性依赖机制,在使用spring的时候就不用去考虑它依赖了什么,也不用担心引入多余的依赖。maven会解析各个直接依赖的POM,将那些必要的间接依赖,以传递依赖的形式引入到当前的项目中。
2.传递性依赖和依赖范围
依赖范围不仅可以控制依赖与三种classpath的关系,还对传递性依赖产生影响。上面的例子中,account-email对于spring-core的依赖范围是compile,spring-core对于commons-logging的依赖范围是compile,那么account-email对于commons-logging这一传递性依赖的范围也就是compile。假设A依赖B,B依赖C,我们说A对于B是第一直接依赖,B对于C是第二直接依赖,A对于C是传递性依赖。第一直接依赖的范围和第二直接依赖的范围决定了传递性依赖的范围,如下图,最左边一列表示第一直接依赖范围,最上面一行表示第二直接依赖范围,中间交叉单元格表示传递性依赖范围。
compiletestprovidedruntimecompilecompile----runtimetesttest----testrpovidedprovided--providedprovidedruntimeruntime----runtime
- maven3实战之坐标和依赖(传递性依赖)
- maven3实战之坐标和依赖(传递性依赖)
- maven3实战之坐标和依赖
- maven3实战之坐标和依赖(依赖的配置)
- maven3实战之坐标和依赖(依赖范围)
- maven3实战之坐标和依赖(依赖调解)
- maven3实战之坐标和依赖(可选依赖)
- maven3实战之坐标和依赖(何为maven坐标)
- maven3实战之坐标和依赖(坐标详解)
- maven3实战之坐标和依赖(最佳实践之排除依赖)
- maven3实战之坐标和依赖(最佳实践之归类依赖)
- maven3实战之坐标和依赖(最佳实践之优化依赖)
- Maven3实战笔记02坐标和依赖--1
- Maven实战(坐标和依赖)
- Maven实战读书笔记之五(坐标和依赖)
- maven3实战之仓库(从仓库解析依赖的机制)
- 《maven实战》_坐标和依赖
- Maven学习笔记十二:Maven坐标和依赖(传递性依赖)
- Android ViewStub控件使用
- cisco IP电话 qos
- 在win 64位机器上 编译Tcl扩展库 工具 vs2008 、64位的Tcl
- 部署swift
- 数据结构之红黑树
- maven3实战之坐标和依赖(传递性依赖)
- 在vs2013下运行CUDA
- spring连接数据库
- Android之汉字转拼音
- 无滚动条,满屏布局风格
- IOS开发之UI——UIAlertView使用
- 判断整数序列是不是二元查找树的后序遍历结果
- Decorator pattern
- Linux下patch的制作和应用