00:00
大家继续观看上硅谷格雷do技术视频,这节课我们提一下格do中的依赖。首先,我们找到build.c文件,然后找到depends。然后按住CTRL键点进去,你发现depend,它本质就是product对象的一个depend方法。然后它需要一个背包作为方法的参数。当B包作为方法的最后一个参数的时候,B包可以写在小括号外边,而且在不引起歧义的情况下,小括号也是可以省略的。所以我们最终见到的形式就是这样的。总之,在这里你能够理解这个depends,它本质就是product对象的一个dependence方法就可以了。然后在这里咱们提一下依赖的方式。在格斗中依赖的方式有三种,一种是本地依赖啊,就是依赖本地项目某个包里边的加包。第二种是项目依赖,你也可以理解成一个product依赖另一个product,或者说一个模块依赖另一个模块。
01:05
第三种是直接依赖。所谓直接依赖,就是当咱们项目需要某些依赖的时候,咱们可以直接来到me的仓库,在这里搜索对应的依赖信息就可以了。比如说我在这里搜索log。然后找到某个指定的版本,然后啊可以点进去。啊,然后直接把对应的依赖给它复制过来。这就是直接依赖。OK啊。接着我们提一下这个本地依赖。本地以来,它具体实施可以通过文件集合或者文件数的方式来指定。来举个例子。比如在这个项目呢,根目录底下,假如此时现在还有一个live目录,Live目录底下有一些架包。啊,那如果我要对呀。本地项目某个加包里边的啊,或者说某个包里边的加包进行依赖的话,我这里可以使用implementation。
02:05
然后通过文件集合或者文件数的方式,文件集合我们用files,文件数我们用啊,Fair tree,前面咱们都讲过。OK啊,然后它需要一个可变参数。作为方法的参数来。比如说我可以指定。依赖目录下的。买点件。或者说。依赖。力保目录下的。这个log佛酱都可以。OK啊,这是通过文件集合的方式,当然你也可以把它换成对应的文件数,文件数这里用F。Tree。然后咱们可以指定一个map。通过这种具名参数的方式给map对应的这个字段赋值。啊,或者说。我们通过居名参数的方式往里边设置一些建筑对。比如说。我可以通过DR指令它依赖哪个目录下的。
03:04
下包。然后在这里边我还可以通过include。指令。依赖另一波包下的。啊,哪些价宝。是吧,你可以把符合条件的给他留下,然后把不符合条件的给他排除掉,也是可以的。OK啊,总之。这种本地依赖的方式。咱们可以通过这种文件集合和文件数的方式完成。OK啊,再一个就是项目依赖了,项目依赖就是从一个模块依赖另一个模块。比如,如果我们这里要依赖一下另一个模块的话,我们可以通过implementation。然后在这里写product。
04:04
然后在这里写被依赖的模块名,比如说依赖PRODUCT01。OK啊,需要提醒的是,咱们这个被依赖的模块名一定要出现在settings点文件中。是吧,也就是说咱们在setting文件中做过引入。他才能在这里啊,依赖。这是第二种依赖方式,叫项目依赖。还有第三种依赖方式,就是直接依赖。直接依赖严格来说它分为啊四部分,一个是依赖的类型,一个是依赖的组名,一个是依赖的名称,一个是依赖的版本号。正好对应着。下边这个,一个是依赖的类型,一个是依赖的组名,一个是依赖的名称,一个是依赖的版本号。
05:00
OK啊,你会发现依赖的组名,依赖的名称,依赖的版本号这三个之间,它中间是用冒号隔开的。它的本质是一个简写,那它的全写啊,应该是这样的。来首先有一个依赖的类型,然后后边是组名。组名就是这个。然后是依赖的名字。依赖的名字就是这个。最后是依赖的版本号。就是最后一个冒号后边的这个。搞定,这才是一个直接依赖的完整写法。啊,当然平时我们通常写起来的时候,把它简写的时候,你就把这些键都给它去掉,然后把这些对应的值中间以冒号给它隔开,放在一个字符串里边就可以了。
06:03
OK啊,这是三种依赖的方式,直接依赖、项目依赖以及本地依赖。再一个我们提一下依赖的下载。我们在项目里边添加了这些依赖之后,只要我们在执行ID构建指令的时候,比如说我们直接执行grid build指令的时候。它会啊,自动去根据这些依赖去找到对应的加班,然后应用到咱们的项目里边。OK啊行,就是咱们课件里边给大家介绍的这个。当咱们执行这个构建指令的时候,就会啊,根据依赖里边配置的那些依赖项,然后去下载对应的加包应用到咱们的项目中。最后咱们给大家提一下依赖的类型,就这个。是这个。
07:01
这个依赖的类型,就相当于以前咱们接触过me的scope,依赖的范围实际上是一致的。常见的依赖类型有这么几种。其中绿色部分的这个,这两个已经被废弃掉了。它是在grid7.s版本被废弃掉的啊,所以咱们这个做一个大致的了解就可以了。OK啊,来,我们看一下常见的依赖的类型。首先第一个是compile only,看这个名字我们就知道。它就是在编译器需要,而在打包的时候啊不需要。是吧,比如说咱们常见的sol API。OK啊,行。是这个,还有一个run time only,通过这个名字我们也能知道。它是在项目运行期有效。啊,在编译期啊。不需要。啊,比如说常见的MYSQL驱动。
08:02
Run time only,它其实是代替了老版本中的runtime,就这个。老版本中我们用的是runtime。不过新版本中已经被废弃了。还有一个implementation。这个一看这个名字就知道它是在项目的,或者说在源码的编译期以及运行期、测试期都有效。用这个。OK啊,它取代了老版本中的compile。老版本我们用的是compel。啊,这个在cordo7.3版本已经被啊移除了。还有test compile only,通过这个名字咱们就知道它是针对测试类的,而且是测试类在编译期。生效。啊,在运行时啊,不需要。还有一个是test time only,这个也是针对测试类的。
09:01
只是在测试类的运行期有效。在编译期和测试期啊,不需要。当然,这个test run time only,它是取代了老版本中用的test time。咱们这里没有给大家列出。啊,总之大家知道老版本中有一个test time已经被废弃掉了。OK啊,还有一个test implementation。这个是针对测试类的,在编译期、测试期以及运行期都有效。OK啊,总之上面这六个实际上都是由Java插件提供的。所谓加Y插件就是这个。OK啊,也就是说咱们要想使用这几种。依赖的类型的话,必须在这里先加入一个Java的插件。啊,然后才能使用。OK啊,而且上面这六个每三个是一组,每三个是一组。
10:04
啊,一共是两组。有针对业务逻辑代码的,有针对测试代码的。OK啊。接着这里除了有Java插件提供的这些依赖类型,还有其他插件提供的,比如说有Java lib。这个插件提供的一个是API,一个是comp only API,这个API的功能类似于implementation。只不过implementation,它不支持依赖的传递。而API,它支持依赖的传递。但是如果咱们要使用API的话,必须先引入Java插件。也基于这个。在这里必须先引入。这个Java library这个插件。
11:00
然后刷新。然后在这里才能出来。这个API。稍等一下,他在下载这个插件对应的。这些依赖类型。OK,等它下载好了,构建好了,咱们在这里就能出现这个API依赖类型了。来,稍等。好了,此时你再看。应该就有了。啊。这是这个。还有一个compile only API,这个也是有Java插件的啊,它的从名字上来看,它就是在编译期有效,在运行期啊。
12:06
不需要。OK啊,还有两个废弃的,这个有兴趣的同学自己读一下。还有啊,就是provided compile这个家伙,它是由瓦件提供的。它是在编译测试阶段都需要,但是在运行阶段不需要。啊,比如说通常见到sol API或者JSP-API。OK啊,行,这是咱们常见的几种依赖的类型。当然啊,这些在官方文档都有对应的说明,大家也可以参考官方文档详细的查看。
我来说两句