遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

验证:maven依赖传递(看懂公司java项目必备基础)

前言

想看懂公司的java项目,maven相关的知识不能少(如果是通过maven管理项目、依赖)

 

项目结构

 

 

父pom中有fastjson依赖(父项目的pom中有被依赖的内容)

版本是1.2.75

 

子项目mvn01的pom中额外指定版本(mvn02和mvn03中不写fastjson的依赖)

mvn01是自己的版本,mvn02和mvn03都是父pom中的版本,说明在依赖传递的时候,继承(mvn01继承了父项目)大于依赖,02和03中,把mvn01的版本被覆盖为父pom中的版本

 

 

子项目mvn01依赖fastjson不指定版本,mvn02的pom中额外指定版本

mvn01是父pom的版本,mvn02用自己指定的,mvn03用父pom中的版本,说明在依赖传递的时候,继承(mvn02继承了父项目)大于依赖,03中把mvn02的版本被覆盖为父pom中的版本

 

 

重新打开项目

 

mvn01和mvn02都添加fastjson依赖,且指定不同版本

父:1.2.75

mvn01:1.2.80 

mvn02:1.2.78

 

下图说明继承大于依赖,03中把01和02都覆盖为父项目的版本

 

 

 

mvn01、mvn02、mvn04都添加fastjson依赖,且指定不同版本

父:1.2.75

mvn01:1.2.80

mvn02:1.2.78

mvn02:1.2.79

mvn03的依赖中,mvn02在上面

 

 

下图说明继承大于依赖,03中把01、02、04都覆盖为父项目的版本

 

 

mvn03的依赖中,mvn04在上面

下图说明继承大于依赖,03中把01、02、04都覆盖为父项目的版本

 

  

父pom中没有fastjson依赖(父项目的pom中有被依赖的内容)--重点

mvn03依赖一个子项目

注释掉fastjson

 

mvn01添加的依赖:1.2.47

mvn02添加的依赖:1.2.75

mvn04添加的依赖:1.2.79

 

重新打开项目,omitted for duplicate表示重复省略,

mvn01自己的,mvn02自己的,mvn02中,把依赖自mvn01的版本替换为自己的了;mvn03中,用mvn02的版本,说明那个近用哪个

 

mvn03依赖多个子项目

添加mvn04

 

mvn03同时依赖mvn02和mvn04,mvn02在上面

 

哪个在上面,03就用哪个

 

mvn03同时依赖mvn02和mvn04,mvn04在上面

 

哪个在上面,03就用哪个

 

mvn03同时依赖mvn02和mvn04,mvn04在上面,但是想用mvn02的

添加排除,exclusion的版本不用指定

 

 

posted @ 2022-04-09 18:39  全栈测试笔记  阅读(636)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end