00:00
欢迎大家继续观看上硅谷格斗技术视频,这节课我们继续讲解格豆中的插件。首先我们看一下grid中的脚本插件。脚本插件,严格来说,它并不是一个插件,而是一个以点C结尾的一个脚本文件。我们使用脚本文件或者使用脚本插件时,只需要通过apply form将这个脚本文件加载进来就可以了。例如咱们这里通过apply from加载了一个叫wash的脚本文件。加在一个脚本文件的时候,也就是说apply from后边这个地址可以是一个本地文件的地址,也可以是一个。远程网络上的地址。比如咱们这里通过一个具体的案例给大家看一下。我们这里首先定义了一个Washington grid脚本文件。然后在这个脚本文件里边定义了一些建设对,通常这些建设对咱们都放在EST对应的这个B包内部。ET全称extensions,表示拓展。在这个B包内部,咱们可以写多个电子对键,一般都是字符串类型,值可以是字符串,可以是对象,也可以是列表,也可以是map,比如咱们这个company对应的值就是字符串类型。而jdk spring的。
01:13
对应的值都是一些map。OK啊,当我们定义好一个脚本文件之后,我们就可以在主脚本文件,主脚本文件就是项目的build这个文件啊,我们就可以在主脚本文件中通过apply from引入这个。我深沟里都叫不着你。引落之后,就相当于把。点grid脚本文件中的内容,直接复制到主脚本文件中了。啊,所以咱们就可以在主脚本文件中。通过这些键使用对应的值。比如,我们在这里定义了一个任务,在任务里边定义了个do last的行为,然后根据这些键引用Washington grid脚本中的值。OK啊,来,咱们也带着大家看一下,比如。
02:03
我这里在项目的game目录底下创建一个Washington grid。然后在这个脚本文件里边。添加一些建筑队信息。然后我在项目的主。脚本文件里边通过apply引入一下。注意apply from后边有一个帽,然后引入Washington。啊,这个地址可以是一个本地文件的地址,也可以是一个远程网络上的地址。引入之后,咱们就可以在当前主脚本文件中。根据键取对应的值。例如。我们这里声明一个任务。然后在这个任务内部通过company啊,通过这个spring。
03:03
就是根据这里指根据这里指定的键。是吧,取对应的值,然后咱们任务声明好之后,我们这里做一个输出。你会发现没有问题。OK啊,这是脚本文件,那脚本文件存在的意义实际上就是啊。为项目模块化奠定了基础。我们可以把一个功能复杂的脚本可以拆分成一个个职职责分明的文件。然后我们只需要在主脚本文件中啊一一引用即可。比如在实际开发中,咱们通常使用这种脚本文件。来统一管理整个项目的价包版本信息。管理整个项目里边所有的加班的版本信息。当然,我们也可以应用构建脚本一起管理。啊,说白了,我也可以在这个根目的build点文件中可以啊,一一加载。
04:06
各个。子模块的。这个构建脚本。OK啊,做到这个构建脚本的统一管理。再一个,除了脚本文件或者说脚本插件之外,Grade中还有二进制插件。所谓二进制插件,也就是咱们经常听到的对象插件。那在grid中凡是实现了。这个plug in接口的插件都称之为啊对象插件或者二进制插件。OK啊。然后在Java里边,每个Java的插件都有一个。插件的ad,这个插件ID是唯一的。后边咱们也使用插件的时候,通过这个插件的ad使用它就可以了。然后咱们这里给大家画了一张图。
05:00
就是二进制插件内部有啊。内部插件还有第三方插件,还有自定义插件。而对于内部插件,它的使用方式有两种,一种是使用apply的方式,一种是plug d SL的方式。而apply apply的方式又分了apply居民参数的方式,Apply必包的方式。OK啊,还有使用第三方插件有两种方式,一种使用传统的方式,传统方式里边就是先引入依赖,然后再通过apply应用这个插件。第二种就是使用plugins d SL的方式。OK啊,来。总之啊,你会发现无论是内部插件还是第方第三方插件,它的应用主要就是使用apply或者plug d SL的方式。当然我们这里还有用户自定义的插件,用户自定义插件定义好了之后,我们可以让它在构建过程中啊,默认就能让它执行。OK啊,行。
06:01
那接下来咱们首先给大家演示一下这个内部插件。内部插件也是啊,大家经常听到的核心插件。那如果我们想查看do中有哪些核心插件,我们可以参考它的官方网站。在官方文档这里,它这里列出了glutter中的核心插件,像Java Java library glu sc等等。这些都是。OK啊,这个地址在这里啊,咱们也给大家。列出来了。那接下来咱们就看一下核心插件。啊,或者说内部插件它的使用OK。首先我们看一下这个。Java材质。以Java插件为例,第一种方式就是plugins。这种DSL的方式。比如。如果这个plugin d SL大家不会写的话,大家可以直接参考它的官方文档,然后啊点进去,比如说我以Java插件为例点进去。
07:07
然后它这里就列出来了,Plugin d SL它的使用方式,你直接把它复制过来就可以了。这是第一种plugs d SL的方式,第二种还有apply的方式。而apply方式里边。比如我现在不使用这种方式了,我现在换成apply的方式。Apply,它本质就是product对象的一个apply方法。它这里有两个重载的方法,一种是使用map,一种是使用必包的方式,咱们先看这个map的方式。我们在这里给他传一个map啊,然后往map里边设置一些建设,对就可以了。当咱们这里啊,传一个map的时候,需要给map设置一些建筑,对。这些键咱们通常都设置为plugin。
08:00
值。有三种写法。我们看一下。就是使用apply后边跟map句名参数的方式。这种。它有这么几种写法。首先map的键它是固定的,就是拉根,而它的值。一种可以写插件ID。这是一种写法,还有还有一个就是写插件的权利名。这是第二种写法,第三种。就是当插件的权利名啊,就是这个类所在的这个包已经被build轨度默认引入过了,那你这里也可以写啊插件的减类名。
09:04
OK啊,行,来,我们也给大家演示一下。比如我想使用Java插件,我可以啊这样写。啊键就是拉根值就是插件的ad插。这个Java插件的插件ad就是啊,加号没有问题,当。在不引起歧义的情况下,小括号也是可以省略的,所以大家以前经常见到的是这种写法。OK啊,来我们刷新一下。这是没有问题的。当然,我们也可以写啊。这个Y6值也可以写它的权利名,那Java插件的权利名实际上是这个。你写这个也是可以的。刷新。
10:00
这样也是没有问题的。OK啊。第三种写法就是。由于这个类所在的这个包已经被。Lo或者说被这个guidle自动引入过了,所以。咱们也可以把这个包名给它省略,直接使用这个简一名Java plugin也是可以的。这样也是可以的,来我们刷新。他要求这个不能用引号引起来。OK啊。行。这是使用apply给一个map。去给他一个具名参数传值的方式,一共有啊这么三种写法啊插件ad插件权利名,以及啊插件的简类名。除了使用apply map这种具名参数的方式。
11:02
咱们这里还有一个apply必包的方式。比如。我们也可以把它换成apply。然后给他传一个B包,B包作为方法最后一个参数的时候,B包可以拿在小括号外边。然后在B包里边,我们这样写就可以了。键就是来给你,然后在B包里边。啊,指定一个方法啊,然后它的这个参数就是这个插件的ID。这种写法也是可以的。刷新。没有问题。OK啊,这是。格斗中的内部插件啊,或者说核心插件的使用。总之就两种方式,一种是apply d SL的方式,一种是apply的方式。apply方式里边又分了apply map居民参数的方式,Apply背包的方式。
12:04
而apply map居民参数的方式里边又分了三种。啊,权利名插件ID还有啊。这个插件来减了没。OK啊,当然使用简历名的时候,它有一个前提,就是这个包已经默雷倒了过了。这是内部插件,接着我们看一下grade中的第三方插件。所谓第三方插件,就是不是有grid自带的。啊,是由第三方提供的。当然第三方提供的这个插件,它本质也是一个二进制插件,也是实现了拉接口的。对于第三方插件,它的使用一般有两种方式,一种是使用传统的这种方式。比如咱们课件里边给的这个。的。传统的使用方式就是先引入对应的依赖和仓库信息。然后。
13:00
第二步就是在应用这个插件。指定了这个仓库,指定这个依赖,他就会去这个仓库里边去下载对应的这个依赖,下载下来之后,然后再应用。这是比较传统的第三方插件的应用方式。那还有一种是DSL的方式,DSL。就这种方式,当然我们如果想使用plug dl d SL这种方式,它有一个前提就是这个插件必须被托管到了。ID的插件的官网。啊,托管到这个网站上。OK啊,然后这里对第三方插件还有一个说明,就是如果我们使用的是这种传统的方式,比如说这种来,我们可以给大家复制过来。如果我们使用这种方式的话。它要求。Build。Build script标签必须在所有标签之前。
14:00
OK啊,来,我们也刷新一下。他这里有一点问题,我们看一下。往这个类路径主要是这个。路径不存在。是吧,如果存在的话,它应该是没有问题的。OK啊,行。当然,大家也可以去啊。这个网站去找一下。我们。来到这个网站,你可以看一下。第三方插件。它确实有两种使用方式。比如我们在这个网站随便找一个插件,我们点进去。稍等一下。点进来你会发现。它有两种使用方式,一种是这种传统的使用方式,就是先引入依赖和仓库,然后在这里再应用啊,还有一种是plugin d SL的方式。
15:08
OK啊行,这是第三方插件的。使用。最后这里有几个注意点,第一个注意点就是build这个脚本必须是放在。最前面的啊,而如果咱们使用plugins这种DSL的方式,它其实并没有这个限制。啊,OK啊,是这个再一个。就是咱们使用托管在插件官网的第三方插件的时候,有两种使用方式,一种是传统的这种使用方式,一种是啊。这种DSL的方式。OK啊,行。这是中的第三方插件,接着是用户自定义插件这一个,这个咱们下节课再说。
我来说两句