1、依赖传递
我们来看一下今天用来演示的工程。

这个工程它运行需要用到这么多的依赖!
首先依赖,它可以设置多个,那么在设置的时候,我们就会发现一些小问题,我们会发现上图中,有些依赖它是有小箭头的,而有些它是没有的。
那这个箭头又代表了什么呢?这说明这个依赖它又依赖了别的东西。
小案例:
ssm

ssm_01_pojo

我们可以看到ssm和ssm_01_pojo都引入ssm_02_dao。
ssm_02_dao里面是什么东西呢?

接下我们将ssm的pom文件中的ssm_02_dao注释掉。

我们再来看看有没有影响。

这里我们看到,它是没有报错的,为什么呢?
因为我们的依赖具有传递性,虽然我们的ssm将_ssm_02_dao注释掉了,但是ssm_01_pojo也导入了_ssm_02_dao,这就是依赖的传递性。
依赖的传递性也分为三种。
直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
直接依赖就是我们直接写的依赖,间接依赖就是我们写的依赖又依赖的其他的依赖。
接下来我们来讲一下特殊优先。
这里我们要了解一下说明是依赖冲突,这个问题很常见,比如我们都用mybatis,你用2.0我用3.0,这不就冲突了,那到底要用谁的呢?
这里我们用一个小案例演示一下。

上面我配置两个junit的版本,右边它显示的依赖版本是4.10。这会不会跟位置有关系,我们将它们两个交换一下位置。

发现,它们还真的变了,这个就说明了,当我们同一个依赖写了两个版本,它会以最后一个为准。
2、可选依赖
现在呢,我们已经知道了,依赖是有传递性的,那现在就有一个问题,我现在开发了一个模块,里面依赖了一些东西,现在呢你想用我的东西,但是我现在不想让你知道我依赖了哪些东西,我想把这些东西隐藏起来。
为什么要这样呢?
比如,我现在用的mybatis用的是2.0版本,但是你用的是3.0的版本,那这不就又版本冲突的问题了,所以干脆,你那里用啥我不管,但是我这里用啥隐藏起来,你那里看不到,这样不就没有冲突了。
案例:
那这个东西怎么设置呢?其实很简单。

就是这个_<_optional_></_optional>标签。
true就是隐藏反之就是不隐藏。

我们看这个TeacherImpl是不是就报错了。
3、排除依赖
排除依赖跟可选依赖优点相似,可选依赖是自己隐藏,不对外公布。
排除依赖就是,我导入了你的依赖,而你的依赖中有写依赖是我不想要的,这个时候我就可以使用排除依赖进行排除。
我往下看看这个排除依赖如何使用。
案例:

4、可选依赖和排除依赖的区别


哈哈哈 子弹越打越多了
哈哈哈 子弹越打越多了
《刺客信条: 黑旗 记忆重置》回应DLC比本体贵: DLC非必须
《刺客信条:黑旗 记忆重置》的首发表现可以说不错,Steam玩家峰值直逼10万。然而Steam的玩家评价却“褒贬不一”。除了游戏宣发问题外,还有一个原因就是总价超越本体的大量DLC,让玩家觉得育碧“吃相难看”。《刺客…当臭猫扶贫神秘嘉豪号主!
原神: 7.0奥黛塔定位反转! 并非木偶专属, 冰神设计成最大悬念
各位旅行者,今天咱们来聊聊原神7.0版本里一个让人意外的角色调整——奥黛塔的定位变化。千万没想到,原本大家都以为奥黛塔是木偶的专属队友,结果根据她的机制和定位来看,这是一位同时拥有星超导和星扩散的双机制…哪辆车能不被28吨钢卷压成废铁? 哪辆车能不被28吨钢卷压成废铁?
原神: 新超导木偶队顶配配装攻略! 告别刮痧与充能卡顿
很多玩家都有这样的困惑,同样是木偶新超导队伍,部分玩家用四星队友就能打出高额满配伤害,而自己配齐五星阵容,却始终面临伤害刮痧、充能卡顿的问题。其实核心差距并非角色配置,而是多数玩家没有掌握版本更新后,…