maven依赖

1.所有的依赖坐落于<dependencies>元素的<dependency>中,dependencies可以包含多个dependency。
2.dependency元素可以包含的子元素有:
  groupId,artifactId,version,type,scope,optional,exclusions,其中groupId,artifactId,version是依赖的基本坐标,必不可少。type是依赖的类型,对应于maven坐标的packaging。
3.依赖范围

3.1. maven的3种classpath
       maven在编译项目主代码的时候需要使用一套classpath,在编译和执行测试的时候会使用另外一套classpath,最后在实际运行的时候,又会使用另外一套classpath。

3.2. 依赖范围就是控制依赖于这三种classpath(编译主代码classpath,测试classpath,运行classpath)关系。maven有6中依赖范围

 

依赖范围(scope)对于编译的classpath有效对于测试的classpath有效对于运行的classpath有效
compile(默认的scope)YYY
test Y 
providedYY 
runtime YY
systemYY 


 4.传递性依赖

如,A依赖B,B依赖C,则称C是A的一个传递性依赖。

5.maven对传递依赖的解析规则。

1)第一原则:路径最近者优先

如:A->B->C->X(1.0), A->D->X(2.0),对于X构件有2个版本1.0和2.0,因为X(1.0)的依赖长度为3,而X(2.0)的长度为2,所以maven会解析X(2.0)做为当前构件的依赖。

2)第二原则:第一声明者优先

如果第一原则不能解析依赖。如2个依赖的构件的依赖长度是一样的情况。如A->B->X(1.0)和A->C->X(2.0),X的依赖长度都是2,这时,maven会根据X1.0和X2.0在构件中声明的顺序来决定解析哪个版本。

6.排除传递性依赖,然后设置传递性依赖的确切版本(并不是不依赖传递依赖)

在dependency元素下增加元素exclusions元素。声明一些需要排除的传递性依赖。然后增加对传递性依赖的确切版本的依赖。

6.查看某个模块的所有依赖(包括直接依赖和传递性依赖)。

mvn dependency:list

查看依赖树:

mvn dependency:tree

依赖分析:

mvn dependency:analyze

最佳实现:最好在模块中显示声明直接依赖。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值