maven学习笔记3 各种maven依赖

1、传递性依赖

account-mail有一个compile范围的Spring-core依赖,spring-core又一个compile范围的common-logging依赖

那么common-logging会成为account-email的compile范围依赖,即common-logging是account-email的一个

传递性依赖。


假设a依赖于b,b依赖于c,a对于b是第一依赖,b对于c是第二依赖,a对于c是传递性依赖。

下图最左边为第一依赖,上面是第二依赖。

第二依赖的不同会影响传递性依赖。

2、可选依赖(optional)

可选依赖不会传递,必须再次声明依赖。

但是值得注意的是在理想的情况下,是不应该使用可选依赖的。在面对对象设计中,有一个单一职责原则

一个类应该只有一个功能。

3、排除依赖

传递性依赖虽然会隐式的引入依赖,但是有时也会带来麻烦。通过在dependency中使用exclusion排除依赖。

值得注意的是在声明exclusion时只需要groupid和artifactid,不要version。

4、归类依赖

在一个地方定义版本,在dependency声明中引用这一版本

<properties>

 <springframework.version>2.5.6</springframework.version>

</properties>

.....

<dependency>

...

 <version>${springframework.version}</version>

5、优化依赖

maven会自动解析所有项目的直接依赖和传递性依赖,并且根据规则正确判断每个依赖的范围(要注意冲突依赖的调解,确定只有唯一版本在使用)

在这些工作之后,最后得到的依赖被称为已解析依赖

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、付费专栏及课程。

余额充值