00:00
咱们再说一个东西呢,就是依赖的原则,嗯,依赖的原则哈,首先来说呢,它的作用呢,是解决这个价包这个冲突问题啊,解决甲方冲突问题,或者说我们这个模块工程之间之间的这个甲方冲突问题,我们先这个呃来设定这样一个情景啊,先设定这样一个情景,就是嗯,情景设定一和情景设定二,这是两种这个不同的情况,情景设定一是什么呢?就是哈,我们给大家来画一下,你看。
01:00
我现在呢,有这个make make friends,依赖的是hello。Hello,然后hello是hello。现在有他们之间有这样一个依赖的关系,那这个时候哈,我这个hello呢,它依赖这个log for街的,呃,1.2.17这个版本啊,Hello依赖1.2.17,我们先把这个依赖的箭头画上。可是呢,我这个这个这个hello啊。嗯,这样说吧,就是你看我现在这个hello依赖于乐forg的1.2.17,那么按照这个依赖的传递性来说,那我make friends这个里边呢,Ma文也会给我们自动的把这个一期这个呢,也给他这个传递过来啊,Make friends这需要传递这个一期,但是呢,我这个hello friend吧,他由于这个某些特殊的这个需要哈,他依赖的一个,他依赖一依赖了一个幺四。
02:24
那么这个时候你按照这个依赖的传递性来说呢,这个幺四也应该传递到我们这个make friends这来啊,这就make就犯难了,同时有两个啊,这个非常优秀的心仪的这个异性的向自己表白了,我该如何选择呢?一明一暗是吧,啊你们你们真是你们在这方面比我强多了,有有机会我有机会我得跟你们去去精是吧,哎,所以说这个时候这个这呢,有有有有这么两个,那他必须得做一个决定是吧,他必须得决定啊,就是他这个时候他这两个他只能选一个来作为他自己运行环境里边的那个有的那个,嗯,你要按照我们直观的考虑哈,可能是我们可能直观考虑,可能会想是不是我们应该选这个版本高的呀,是吧。
03:24
版本高的一般向下兼容哈,这么想其实也没有错啊,但是这个妹呢,在这儿啊,它有一个自己内置的一个,呃,解决这种问题的一个原则叫做就近优先,就是就是呃,路径最短者优先,所以这时候怎么去怎么去看这个路径呢?你看我从这个这个其实很容易说哈,你你从这个make friends,他就看他到他和到他哪个离得近哈,那我我从make friends到到他的话是这是一。这个是这个是又一个一,所以它加起来这个是二,它加起来这个路径是二啊,然后呢,他要是到它的话,你看这个是一,这个是又一个一,这是在这又一个一,所以它加起来是三,所以很明显呢,它离得近,那就是以他为准啊,所以说这个时候呢,是路径最短者有先在这儿呢,它真正最后导入的呢,应该是他阿佛街的1.2.14。
04:30
啊,当然了,我听到好像有同学说,那假如说我我我在这儿,我就得用用这个幺七的,这个怎么办呢?那那很简单,你在make这呢,你明确声明一下依赖这个幺七,你就你就不用这个依赖了,就是不用这个传递了,我们这儿说的是传递过来的那个,哎,默认传递过来的那个,你要是就需要幺七,你就明确声明一下,你要这个幺七就行了啊诶这是我们说这是一个路径最短者优先这个原则,诶这个是验证啊,路径最短者优先这个原则。
05:08
那么这个我们先把这个理论先说了,我们一会儿一块儿去测试哈,然后还有一个,还有一个情景,还有一个情景呢,跟这个不太一样,嗯,就是它有没有可能路径相同呢?哎,对,比如说呢,我这个make friends又依赖一个our friends,诶他依赖这俩。那hello f呢,还是依赖这个幺四。哎,然后呢,我这个make friends呢,来是这个幺七,这你说你这怎么做这个选择吧啊,原配和小三站在你面前,你要我还是要他,哎,所以这个时候呢,你看我从make friends到这儿的这个路径是二,Make friends经过all friends到这儿的路径呢,也是二,这个路径就相同了,路径相同的时候,那也得有一个取舍的一个标准呀,哎,所以这个时候哈,其实呢,他的取舍的标准呢,是这个叫先声明者优先验证这个路径相同史先声明者优先,当然这个先声明哈。
06:46
先声明指的是这个dependency这个标签的啊,这个声明顺序看谁在前谁在后啊,前面的优先啊,后面的就落后,这是这么一个,这是理论上的是这样一个描述,我们下边呢,来这个验证他一下。
我来说两句