Maven基础篇1

1.Maven依赖管理

2.依赖传递

项目2需要用到项目3

需要将项目三作为资源配置到项目二

也就是dependecy中加入项目三的gav

两点注意事项:

使用项目三,直接将其gav添加到依赖中,

使用项目三,项目三不能感知到,自己有相关资源

依赖传递:就是自己使用的资源如果是jar包,那么jar资源使用的依赖自己也可以使用就像上图那样一层一层的传递下去;

依赖传递分为:直接依 赖,间接依赖

3.依赖传递中的冲突问题

原则

当依赖中出现相同的资源,当层级越深优先级越低

相同层级被依赖时,先配置的优先级高

依赖中dependecy出现不同的版本,肯定是后者出现的晚更新,后者优先;

4.可选依赖

可选依赖指对外隐藏当前所依赖的资源

注:

可选依赖无法去除junit依赖的子依赖

用户无法在junit中修改junit的org.hamcrest 的optional参数

5.排除依赖

主动的断开依赖的资源,被排除的资源不需要指定版本'

不需要写版本

exclutions,exclusion写gav

6排除依赖和可选依赖区别

可选依赖是私房钱,不让别人调用自己的时候使用自己的某个资源

排序依赖是主动断开,排除开自己的不想要的依赖资源

小结:

依赖管理

依赖传递

排除依赖

可选依赖

homework

创建三个工程

分别配置三个log4j,分别配置junit不同资源

版本分别为1.2.12,1.2.13,1.2.14

1调用2号资源,1调用3号资源

2号进行可选依赖,不让1号看到

1号进行排除依赖排除掉3号依赖

重复一下依赖传递的优先级问题

相关推荐
1024小神几秒前
hono框架绑定cloudflare的d1数据库操作步骤
数据库
考虑考虑44 分钟前
JDK9中的dropWhile
java·后端·java ee
想躺平的咸鱼干1 小时前
Volatile解决指令重排和单例模式
java·开发语言·单例模式·线程·并发编程
hqxstudying1 小时前
java依赖注入方法
java·spring·log4j·ioc·依赖
·云扬·1 小时前
【Java源码阅读系列37】深度解读Java BufferedReader 源码
java·开发语言
KellenKellenHao2 小时前
MySQL数据库主从复制
数据库·mysql
@ chen2 小时前
Redis事务机制
数据库·redis
KaiwuDB2 小时前
使用Docker实现KWDB数据库的快速部署与配置
数据库·docker
Bug退退退1232 小时前
RabbitMQ 高级特性之重试机制
java·分布式·spring·rabbitmq
小皮侠3 小时前
nginx的使用
java·运维·服务器·前端·git·nginx·github