00:00
那么下边大家看哈,就是我我们这些所有的就是这些咱们呃,各个话题吧,从前到后哈,咱们因因为依赖也都这个补上了,所以前面这些呢,你看都讲完了,我们下边这个呢,该说这个继承这个事儿,哎,咱们一点一点说啊,这个继承首先呢,我们得让大家知道为什么我们需要继承,它是解决什么问题的,我们先看一下这个现状,什么现状呢?这个hello依赖的我们看看是什么版本的啊hello呢,是依赖的是。4.0,然后呢,这个哈的看一下hello friend依赖有。
01:03
它也是4.0,然后呢,我们看这个make friends依赖他是他是什么。4.9,哎,你看它有这样的区别,那么我们的需求是什么呢?就是呃,统一管理。哎,各个模块工程中对j unit,呃,依赖这个版本啊,呃,为什么单单独的要说这个只unit呢?倒不是只unit本身有什么特殊的,而是我们说呀,这个unit呢,它它是呃taste范围的,那么我们说tist这个范围的它是不能传递的,你就得零散的,它就是会零散的分散在各个模块工程当中,就很容易造成这个各个模块工程之间版本不一致,诶我们说这个是test范围的依赖,嗯嗯,由于它不能传递。
02:19
不能传递,所以必然会分散。在各个模块工程中,诶,嗯,很容易造成版本不一致,这个不一致呢,就会给我们这个团队协同开发呢,造成一定的问题啊,你今天在这个支付这个模块,你用的只有是4.0,你过两天呢,把你分配到把你调到那个用户用户管理那个模块里边去了,他用的是4.9,操作的方式呢,就会不一样,就不如我们把它统一成同一统一个版本啊,那么我们团队之间的协作呢,就能够非常的顺畅,那下边就说我们怎么样能够给他们统一的管理起来,那么这个解决的这个思路啊,就是将这个,呃,我们说将这个只unit依赖统一,当然这个其实是版本哈,这个只由逆态依赖的这个版本统一提取到这个负工程中。
03:27
诶,然后在此工程中仅嗯中声明依赖时不指定这个版本,哎,这个版本呢,这个呃,对这个在复工程里边哈,是这个完整的这个依赖啊,是完整的依赖,那么然后在子工程里边呢,我这个声明这个只unit依赖的时候不指定这个版本,那么这个时候呢,各个子工程啊,它的只unit依赖的版本就按照这个复工程里边统一的设定的这个为准。
04:02
诶以负工程中统一设定的为准,这样的话它就能够统一的管理了,而且呢,你下次再要是有修改的话,它可以这个修改这负工程这一个地方,这个各个子工程的就一起就都被修改了,同时也便于修改。好嘞,那么我们看看怎么样来做啊,这个操作的步骤,第一点,第一个呢,我们得先去创建一个,创建一个工程,当然是命令工程作为副工程,但是呢,要注意这个打包的方式,因为这个时候呀,它作为负工程呢,既不是Java工程,也不是外部工程,所以它打包的方式呢,既不是架,也不是Y,那么打包的方式呢,是碰啊,这是一个需要注意的地方,然后第二个呢,是在这个子工程中,哎,声明对负工程的这个引用,哎。
05:16
我们先列出来这个步骤,一会儿咱们按照这个步骤一步一步去做啊,咱们先给大家把这步骤列出来,然后第三步呢,是将这个子工程的坐标中与负工程,与负工程坐标中重复的这个内容呢删除,诶第四个呢,就是呃,在负工程中声明统一这的这个依赖,第五个就是在子工程中。删除这依赖的版本号部分,大致上是这么个过程,下面咱们就是按照这个呢,咱们来操作一下。
06:09
我们先去创建一个负工程。我们管这个负工程的叫parent。Com点艾特硅谷点没问parent,哎,我们说了它呀,打包的方式呢,既不能是架也不能是吧,它得是这个po,诶然后呢,点finish,这就是我们去创建这个工程,你看创建完这个工程里边这个很简单哈,因为这没有必要有别的了,它关键就是关键就是这个POM这一部分,诶那么这个呢,是我们复工程的这个坐标和这个打包的方式,诶最关键的是它。
07:07
然后呢,我们在子工程里边啊,声明对负工程的这个引用,比如说这个哈。我们在这这么来配一下啊,诶parent用这个标签,嗯,此工程声明,嗯子工程中声明负工程这个过程吧,就就怎么着都感觉这是这个这个子工程说呢,我认你当干爹是吧,就就这么就这么一个过程是吧,因为其实是子工程先有的嘛,那在这当然我们需要去引用这个负工程的坐标。引用了这个坐标以后呢,在这儿啊,最好是呃,它这没有错误提示的,但是最好呢,还是配一个relative pass,这个relative pass是什么呢?就是以当前工程的这个pom.X毛文件为基准,嗯,为基准的啊,这个负工程home s毛文件的相对路径,哎,在这是负工程泡沫文件的相对路径,但是呢,是以这个当前文件为基础的,咱们就写简单点吧,是以当前文件为基准的啊,所以这个时候呢,你看我们以这个POM从这出发,然后去想找这个parent里边的这个POM,那就得先从这个hello这出来啊,出来的话就是点点斜杠,然后找parent啊,这个parent。
08:53
CC,它下边去找这个加,把这个给它配上,CC,这是一个认干爹的一个仪式。
09:11
你光这个哈,认了干爹也不行呀,这个哈他也不干,落后呀,现在这年头,当儿子都抢着当。Hello make说这事怎么能少得了我呢,干爹等等我说明这干爹还是有非常庞大的这个实际利益的是吧?嗯,好嘞,这个是各个子宫程的来说明our friends,咱们就不带他玩了啊,不带他玩了,他长得太胖了,然后呢,声明了以后,我们说把这子工程里边坐标与负工程坐标重复的内容给它这个删掉,在这儿呢,大家发现我们这配了这个以后呢,在这就这个和这个就有黄线了,哎,我们看看这个黄线呢,它表示什么意思呢?Group ID is dulicate of parent group ID,哎,Wlicate就是重复的嘛,你相对于副工程的group ID来说呢,是重复的,那么就没有必要写这个了,我们在知道这个。
10:24
截图。但是截这个图我还得再截一次,这就是那个重复的部分,太完美了,这就是那个重复的部分。当然了,你不删也行啊,不删也行,在这儿的话就是删除的话,不就是这能简洁一点。为了去掉这两行代码,然后我们在这儿多写了这么4566行是吧,这个这个买卖是不是很划算呢。
11:10
大家非常都有商业头脑啊,为了为了省这两行加入六行,你们还觉得很合算啊,哎,这个智商跟我也有的一拼了啊,当然了,你要专门就是为了干这个事儿呢,其实没有必要去做做这样一个继承哈,我们说关键是为了统一管理这个自由逆,诶这个做好以后呢,我们说复工程中统一统一自由尼的依赖,统一管理,这要突出管理这两个字,哎,所以在这个副控程里边呢,它是这样的,它配一个dependency management依赖的管理。统一配置依赖的管理,那在这里边呢,再去配这个具体的这个依赖,比如说在这儿呢,我们需要配这个尼。
12:11
嗯。嗯。啊,我就说不对了啊是哎,Dependency management里边配depends dependences里边再配dependency,然后呢,你这个时候啊,这负类里负工程里边统一配置了以后,我们先拿到笔记里边啊,我们再看这个子类里边的这个这一部分,这个时候只unit的这个version,这呢就会有一个有这样一个声明,他说overriding manage的version,说它这个4.0的,对这unit来说呢,是一个已经被管理起来的,但是呢,你又重写了,你又重写了,当然这个时候它就是给你这么一个提醒啊,提提示你负工程里边已经有这个统一的管理了,就是你是不是就是确定你要跟这复工程不一样呢?诶当然你要确实说在在这儿呢,要不一样,那你就保留,但是我们说我们的目的就是为了统一管理,所以在这儿呢,就把它这个就删掉。
13:22
包括hello friends,这也是make friends这儿也是。把这个去掉以后呢,我们再看他们各个依赖的这个版本,诶,Hello,这4.0,诶hello friend这是,诶打开错了,4.0 make friends,这4.0,然后呢,如果我们想统一的升级为4.9,就都改成4.9了啊,这一下子这几个工程都改成4.9了,你想想这是三个,你要是不这么弄,自己手动改的话,到时也不费事,但是你要是有20个呢,有30个呢,这个一个一个做就很麻烦了啊对,在这我们去把这个也截一个图。
14:22
从前。好嘞,这个就是我们继承哈,所要解决的这个问题啊,这个就是为了统一管理,像这样的这个版本号啊,就是为了起这么一个作用,然后这个坐标里边呢,能够给它精简一下,这这是一个捎带的效果啊,这是一个捎带的效果。
我来说两句