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号依赖

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

相关推荐
逃跑的浣熊4 分钟前
MySQL 性能分析报告:Page Cache 与 fsync 对读写性能的影响
数据库
小园子的小菜14 分钟前
Java 并发四大工具类深度解析:CountDownLatch、CyclicBarrier、Semaphore、Exchanger 原理、源码与面试考点
java·开发语言·面试
路由侠内网穿透.15 分钟前
本地部署开源日志收集系统 Log Bull 并实现外部访问
运维·服务器·网络·数据库·开源
搭贝低代码16 分钟前
设备管理系统迁移改造:从手工台账到二维码数字化的实践路径
java·低代码·搭贝
前端双越老师19 分钟前
Nest.js 和 Spring Boot 为何如此像?写给前端转 Java 的同学
java·spring boot·全栈
JL1529 分钟前
Java+Go 混合架构怎么搭?收官 50 道面试题 + 学习路线
java·架构·golang
Tattoo_Welkin40 分钟前
IDEA 中常用操作记载
java·elasticsearch·intellij-idea
音符犹如代码1 小时前
Arthas classloader + sc 实战:JVM 类加载与手动加载
java·jvm·spring boot
乐启国际旅行社有限公司1 小时前
Java线程池实战:文旅系统批量任务性能优化(团期生成/数据导出)
java·开发语言·性能优化
Listen·Rain1 小时前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio