00:00
好,呃呃,那么我们刚才讲完这comp呀,我来猜测一下大家心里边的这个感觉哈,你可能会觉得说了半天好像跟什么都没说一样。诶,那其实你要有这个感觉就对了啊呃,你不必觉得困惑啊,这个时候因为它本身就是默认值,默认就应该是这个情况啊,不用你写默认就这个情况,其实呢,我们ma呢,设计scope这样一个功能啊,就是设置这么一个设定,允许我们做这样一个设定,其实是为了什么呢?就是为了把什么测试呀,什么这个已提供这这这这这些特殊的依赖,和我们常规的普通的依赖呢,给它区分开。啊,所以说我们compel呢,就是常规的普通的啊,最一般的默认情况就是它。啊,所以说你看他这时候对他们来说都是有效的,那么我们关键呢,这里边儿啊,要进一步真正理解说什么叫依赖的范围,得看一下这个,呃,可以说是特情况啊,你像这个以test范围引入的provided,引入的什么后边什么system import都算特殊情况啊,我们对照了特殊情况啊,就是以呃,一般的普通的常规的默认情况为。
01:19
基准对照这个默认情况呢,然后再去看了这个特殊情况,两相印证,咱们就明白这个依赖的范围,彻底明白它是什么意思了啊,所以说在这儿呢,我们下边就来看这个测试的范围。说呢?呃,先看第一个格,说这个以测试的范围引入的这个依赖,对我们闷目录下边的Java类来说,是不是可以使用的诶。还是啊,咱们一个一个来找。在慢目录下边的程序,那不就还是我们这个hello吗?啊还是。哎,就是它,然后呢,Taste范围引入的依赖。
02:05
那就是呗。哎,然后呢。中的类啊,或者说呢,我们中中,呃,可以使用的有这么一个注解,就是这个at test。哎,这个at test呢,它呃对应的类呢,就是2.unit加test。哎,这不就它嘛啊,所以说我们下边这个测试呢,哎,就是这样的哈。我们把对这个二点点test,对它的这个,呃,这个权里面把它给引入进来。那么看看引入它编译是不是能够通过,如果引入它编译能过,说明能用,编译不过的话说明不能用啊,就这么简单。诶,保存一下啊,确认保存了,然后呢,这时候咱就咱就重新编译就行了啊,哎,这是main目录下边的hello so,看看它里边能不能够导入我们二个点unit.t。
03:08
哎,大家从思路上一定要能够跟着走啊,你一一定要跟住啊,你得知道我们现在做这个操作是要干嘛啊,我们现在是要要去,哎验证。这个格的这个结论啊,所以说我们现在预估呢,应该是闷目录下边这个hello用不了,只有加test啊,且这应该是无效,这时候应该是编译无法通过的一个效果啊,MVN的clean的comp。这不就是build failure啊,预料之中的error,这不,这不就是构建失败了啊,他会说什么呢?Fail to execu go。执行目标失败了,哎,是谁的目标呢?是我们这个插件啊,这个插件是compeller,哎,编译器这个插件,它的compile这个目标失败了。
04:05
然后呢,是在我们web这个工程里边失败的啊,为什么失败呢?因为呃,Compilation,呃,Failure。就是编译的失败啊,然后呢,编译又为什么失败呢?是因为在我们的这个类里边啊,这个Java源程序里边第十十四行。哎,14行,你看就十十四行,然后呢,他说呢,程序包二个点,只有你它不存在。哎,这就证明啊,你是用past范围引入的这个依赖,它里边这个东西在我们我们闷目录下边是不能用的啊,在闷目录下边是不能用的,所以说在这儿确实我们证明了呢,是无效的啊。这个为了不影响以后我们后续的操作,这样给他这个注释角啊。哎,具体测试啊,代码如下啊,一个是一个这个是有效的。
05:05
这个是无效的。然后呢,接下来我们再看啊,呃,Test的范围对test的目录是不是有效的,这个事儿其实是,呃,不用几乎都不用再去测试了啊,因为你你想测试的范围,它把这个依赖导进来,就是为了给测试的程序用的嘛。这个要是不能用,那就天理难容了啊,这个事儿,这个事儿就说不通了啊,它肯定是有效的,而且这个我们无数次的这个啊证明过了,这不就是我们测试的这个类吗?测试类它里边这不导入,只有你这都能够去执行这个测试的方法啊,所以说这个肯定是没有问题的啊,这个肯定是没有问题的。无论从逻辑上啊,哎,天理人情上啊,还是从我们的这个实际运行的这个效果上都没有问题啊,不过我们还可以再执行一遍。
06:01
这要出了问题就见了啊,这要出了问题就真见鬼了。当然说不能说见鬼吧,就是说肯定是你哪儿别的地方有写错的,有干扰啊,哎,现在我们这个肯定是没有问题的啊,这就不多说了,测试的范围引入进来就肯定就是给测试用的。那么你这开发过程呢,指的是你测试程序在开发过程中肯定测试,在测试范围引入的依赖肯定是可以用的,然后部署到服务器的时候呢。我们直接呢,咱们就来看,还是看这个袜包就行了哈,好重新打包一下。好嘞。然后呢,这是哎挖包的解压目录,Lib下边啊,Web infer下边的lib,只有我们comp范围引入的这个价包啊,Test范围引入的这个就没有啊,这个就这个也很正常,其实呢,我们想哈,这个确实也应该是这样,我测试呢,就是在呃。
07:08
哎,我在部署上线之前啊,我去执行一些个单元测试,测试一些关键点,这个程序是不是对的,那么我部署到服务器啊,我肯定是确认没问题部署上去,然后服务器一方面呢,服务器上它也没有这样的机制来调用这个解测试的程序,再一个它也没有必要去调。啊,用户也看不到你这个运行的结果。啊,所以说呢,他要是部署到服务器上呢,反而还会增加服务器的负担。啊,反而会增加这个夫妻的负担,所以说不应该把它给这个呃一起放上去啊,我们呃,你想哈,如果是这个,甭管是有关无关的呢,什么样的价包啊,我们就也不区分这些个范围,咱们就一股脑的都给它扔到服务器上,这个服务器上是不是就会很乱。啊,是不是就会这个有很大的这个负担,有很大的这个压力,这个时候运行的这个运行的效率,也就是我们说的这个性能。
08:05
以及呢,我们开发维护的这个难度是吧,这个时候其实呢,都会有不良的影响,所以说呢,无关的呢,我们就把它都给去掉。啊,大家想这个我们发射这个火箭啊,是不是旁边呢有一个发射架啊,或者说发射塔啊,这个时候的话,这个火箭呢,在没有发射的时候,旁边这个发射架呢,在旁边扶着它火箭下边一点火,它火箭升空了,你旁边这个时候,旁边这架子是不是就就撤开了啊,有的时候这架子会倒掉,有的时候它就是松开这个,呃,旁边这个机械臂什么的是吧,就这个意思吧,哎,这这个我们这个只游尼测试这样的东西呢,就是属于我们这个辅助性质的。哎,辅助性质。你看打王者荣耀什么时候就是法师呀,战士呀,刺客呀,拿MVP,你什么时候你见过蔡文姬拿MVP是吧?哎,他毕竟他就是一个辅助啊,所以说呢,它肯定这个辅助性质的,这样的形式呢,导入的资源肯定它是不会去参参与我们这个服务器的部署的啊,肯定不会参与服务器部署的。
09:13
啊,所以说这个事儿呢,我们这个一方面呢,这些东西哈,我们一方面呢,从实际的运行的结果的角度啊,实际的运行的结果的角度。然后呢去看啊,它的这个实际的,呃,就是实际的运行的效果啊,一方面是从这儿来看,另外一方面呢,咱们从道理上呢,也要去理解啊,它为什么会有这样的一个结果啊,说白了呢,其实归根到底你看就是说你推范围就是测试用的嘛,你就在这个地方有用就行了啊,你你这个没有慢目录下边不需要你啊,然后部署到服务器的时候也不需要,你不需要的时候就不带它就可以了。是吧,这就是我们配的这个范围。
我来说两句