00:00
欢迎大家继续观看上硅谷greatid技术视频,这一节课我们来看一下grid中的任务执行。在grid中,如果我们想要执行一个任务,我们使用grid后边跟任务名,再跟任务的参数就可以了。注意,这个任务的参数是可以省略的。接下来我们看一下我们常见的任务执行指令,比如说我们常见的grid build完成项目构建使用的。啊,由Java源码的编译测试到打包以及到部署。整个过程。这个build。你可以自己在terminal终端自己输入啊,也可以使用这种图形化界面的方式在这里啊。直接双击。也可以。OK啊,接着还有grade run指令,Grade run指令它是运行一个服务的,它需要application插件的支持,并且咱们还需要在build.grade文件中指定一下这个主启动类。来吧,这样咱们也给大家演示一下。比如我在root目录底下,在这里定义好了这么一个。
01:03
类啊,含有没方法的这样一个主启动类,然后把这个类。定义好之后,咱们需要。使用这个grid line指令的话,诶,我们需要在build这个grade文件这里首先加一个。Application插件。加了这个插件之后,咱们也对这个项目先进行一个刷新。然后你会发现在这里它会多出一个application插件过来,然后在application插件底下,它有一个乱指令。如果我们想要运行这个乱指令的话,我们还需要指令。这个主启动类的名字。来主起到了名字。咱们把。这个名字给它copy过来。搞定,这样咱们再次执行乱指令的时候,它就会啊,运行主启动类里边的这个main方法,然后在这里啊显示执行了没有问题。
02:04
当然你也可以自己在这个终端这里执行,格罗伊多啊,对,也是可以的。啊,或者说。执行W也是可以的。来,我们来看一下,没有问题。还有cle命令是用来清理当前项目下的build目录的。需要注意的是。啊,如果当前product还有子。这个great clean指令,它只会清理当前product中的build目录,它不会对子product的build目录进行清理。继续接着是gid in是用来初始化一个grid项目的,前面咱们也给大家演示过,还有gid rapper是用于升级rapper目录中的这个gid的。比如咱们想对rapper目录中的这个grade版本号进行升级,我们也会用到这个。
03:08
OK啊。接着还有跟项目报告相关的任务指令,比如说grid product,查看当前product以及它的子列表。而且这些。这个product列表能一样?树状结构显示出来,来,咱们看一下。执行C。Protect。它会把当前product还有当前product底下的子product以这种树状结构显示出来。嗯,咱们这里没有看到完整的,是因为它这个控制台打印的问题。来吧,咱们再来看一下格products。这样我们就能看到了,首先有根product,然后跟product底下有啊,多个子product没有问题。
04:06
还有greatid tasks,注意great tasks,它能列出当前项目下已经分配了任务组的那些任务。来吧,看一下。比如。在这里我执行gid tasks。虽然刚才咱们在这个build这grid文件中在这里定义了task a task b,但是由于没有给它指定啊,它是属于哪个组的,所以他不会把任务A和任务B显示出来。来。直接执行根目录底下的task,你会发现这些task都是啊,已经有分组了,这些task才会显示出来。啊,像隐匿rapper呀,Class啊,Clean啊,G啊,但是咱们自定义的这个任务A和任务B并没有显示出来,如果想让它显示出来怎么办呢?第一种方式就是你给它指定它是哪个组的。
05:06
当我们部位这个task指针组的时候,它实际上只是在这里显示出来。在这个other这里。你看这里有ABC这三个任务。那如果我们为他指定了分组信息,比如说我为这个任务B指定一个分组。指定它属于ABC这个组了。当我们为一个任务指定分组之后,此时我们再执行grid tasks。他就能把。啊,这个。任务B给啊显示出来。来,我们再来,往上看,往上看,往上看,此时你再看。你看指定了。分组的这个任务B这一次就显示出来了啊,同时由于它质量的分组,咱们在这里也能看到。刷新。你会发现在这里它多了一个ABC这个组,在这个组里边就有一个任务B。
06:03
OK啊,当然,我们也可以通过greatid tasks、杠杠、all来查看所有的任务。啊,无论是它是不是已经指定了分组了,来我们看一下。这样它会把当前项目底下所有的任务给列出来啊,无论是不是已经指定了分组了。没有问题。OK啊,包括刚才那个B。也显示出来了。啊。我们也可以通过great tasks杠刚group后边跟组名显示某个组底下的任务,比如说咱们显示ABC这个组下的任务。我就可以这样写。后边指定这个组名ABC就可以了。
07:08
这样它只会显示ABC这个组下的任务是B啊,其他的任务它就没有显示。OK啊。当然我们也可以查看某一个任务的详细信息,比如说我们用great help杠杠task后边跟某个任务名就可以了啊,这样这就可以查看某个指定任务的详细信息了。来,我们看一下。比如说我想查看这个任务B它的详细信息。然后在这里就列出了任务币,它是哪个project,然后它的类型是什么类型的,以及它的描述信息啥,以及它的分组信息等等这些信息。接着我们还可以通过CD depends查看整个项目的依赖信息啊,并且它能以依赖数的方式展示。来来,我们看一下。
08:11
比如我想查看一下当前项目下的。依赖信息。我们就可以使用great depends,它会以这种依赖数的方式展示出来。啊。OK啊。首先首先在这里它依赖了。啊,5.s版本还有一个这个,而这呢,它依赖了这个open text。啊,总之它是能够以依赖数的方式展示出来,其中打星号的都表示的是有加班冲突的。在grid中,如果遇到加班冲突,Gid默认采用的是高版本的。这个。加班。OK啊,行。接着,我们还可以通过grid properties查看当前项目所有的属性列表。
09:06
来,我们可以看一下。OK啊。比如咱们这个。可以看看到这个项目的路径啊,就是这个冒号,冒号时间就是项目的根路径OK。还有一些其他的。比如说这个当前工程,它的负工程,它已经是根工程了,所以它的负工程师呢啊等等,还有一些JVM信息,还有谁啊。就是还有在G文件中的这些内容。OK啊。这是great的一个指令。接着我们还可以使用G杠杠help或者杠H,杠H是缩写杠杠HELP2个杠的help啊,查看这些帮助信息来。
10:03
比如说我们想查看一下主度中到底有哪些指令,诶你可以通过刚刚help。或者杠H。来查看。以及它用到的参数是啥,都表示啥意思,这里都有对应的解释。还有C-V查看的版本号信息,这个前面咱们给大家演示过。还有ID-S,无论是大S还是小S都是查看异常信息的。只不过大S。它是查看完整的堆栈信息。这是调试相关的现象。啊,有需要的同学可以试一下。还有性能相关的选项。这个性能相关的选项,咱们一般是在G点文件中配置就可以了。点properties文件,咱们一般放在项目的跟踪底下。这个grave properties文件中的内容,它在项目执行过程中会自动加载。而且在这个g.properties文件中,咱们一般配置一些。
11:02
全局性的。注意啊,它配置的是当前项目项。的一些全局性的设置。啊,和咱们前面学过的那个初始化脚本还是有一定区别的。前面咱们也配置过那个阿里云的镜像仓库初始化脚本,它是所有项目都会啊。加载那个初始化脚本,而这个great properties呢,是当前项目。啊,全局性的一些配置。OK啊,而且great properties里边的建队都是奏串类型的。和咱们以前学过的GDP c.properties是一样的,所以啊,大家用起来应该是比较熟悉的。咱们还可以把一些统一的配置,配置在这个文件里边,提高开发效率。当然你也可以配置一些性能相关的,比如说。是不是让它开启守护进程啊,如果开启的话,那下一次构建的时候将直接连接这个守护进程进行构建,而不是在fok一个新的守护进程构建。
12:10
我们设置为处,就是开启。当然我们也可以设置它按需加载,不需要了就不需要再加载了。以及我们。可以让它支持并行编译,加快我们的编译速度。包括是不是要开启缓存。OK啊,行。总之咱们还可以在这里指令,比如说这个。执行这个项目的时候使用的这个CPU的核数。你也可以指定一下。直接指定对应的值就可以了。啊OK啊行。接着还有就是是不是就是守护进程相关的这些配置,这些配置刚才咱们也提到过了啊,就是让它作为守护进程,你也配在这个度点purpose文件中就可以了。
13:07
还有日志相关的,日志相关的前面咱们用过一个GR,后边跟level名,然后中间有一个杠A,我们当时说表示ino及info级别的日志,当然你也可以用杠W表示啊,War级别的日志。杠Q它只输出那些错误信息啊,杠B呢,就是会把debug级别及debug级别以上的日志都会输出。OK啊。还有就是一些其他的一些参数了,比如说杠S啊,比如说可以跳过某个测试,在执行构建过程中跳过某个测试,就这样写。包括我们也可以执行啊。这个强制执行一些任务。比如说咱们在这里进行项目构建的过程中。来build。你会发现有一些它提示的是up to date up to date,它表示的是已经是最新的了。
14:00
也就是说,在项目构建过程中,它并没有重新的帮它构建,如果你想让它重新构建,哎,那你就使用c build,然后杠杠return task task。是吧?还有杠杠,Continue。刚刚continue就是忽略前面失败的任务,让他继续执行,不会因为遇到一个失败的任务而停止整个构建过程。当然这个遇到的构建的。问题,他也会在这个构建结束时啊进行报告。OK啊,我们把这个杠杠continue加在great后面就可以了。还有一个。就是咱们可以将一个M项目转换成啊grid项目,用grid in杠杠type po就可以了,来咱们这里给大家演示一下。比如。我们这里打开一个卖项目。
15:00
这是一个M项目,然后如果咱们想把它转化成锐度项目的话。我们只需要直行执行do啊。Type。啊,或者说great in need。这个杠碰。来,直接复制过来粘贴。回扯。这样他就会把当前项目转换成一个grid项目。然后他让我们选择一下。使用哪种脚本,咱们这里使用的是G脚本。然后咱们选择默认的就可以了。来,我们看一下。这样应该已经生成好了。你看现在这里它就自动生成了build.grade文件,然后还有settings.grade文件。
16:06
OK啊。接着。这里我们还可以使用后边跟任务名执行一个自定义的任务。比如咱们前面制定一个任务,然后使用这个指令让他执行一下就可以了,当然如果大家想对grid的任务执行指令有更多更详细的了解,可以参考咱们这个官方文档,最后咱们这里给大家拓展几个。知识点外,第一个就是idle,在执行某个任务的时候,Idle是支持这些任务名进行缩写的。啊,它支持这种啊,把驼峰式命名的风格的类名给他缩写。比如说咱们的任务名叫connected task。那我在执行这个任务的时候,我可以使用grid,后边根据这个完整的名,也可以使用它的缩写,缩写就是取每个单词的首字母。来,咱们给大家演示一下。
17:02
比如我在这里啊。定义了一个任务,比如说叫connect。Task,然后我在执行它的时候,我可以这样执行。用。后边跟完整任务名的方式肯定是没有问题的,咱们这里用任务名简写用CT。啊,取每个单词的首字母。这样也是可以的,他也确实输出了,他没有问题。再一个就是咱们前面执行的其实一系列的任务指令,本质就是一个个的task。格斗中所有的操作其实都是基于任务完成的。再一个就是咱们看一下咱们经常提到的的执行指令啊,他们之间实际上是有一个依赖关系的。比如咱们前边执行过的great test great build啊,或者说great classes,你看之间他们之间的关系。
18:08
这是官网给出的一张图。通过这些名字,咱们大体上也能猜到各个指令它到底是什么意思。比如说compile compile Java,它就是用来将sc main Java目录底下的业务逻辑代码进行编译的。Process process resources就是将s resources目录下的业务逻辑代码所需要的配置文件进行编译处理的。这个classes呢,主要是针对src内做处理的,它其实就是依赖了前面两个指令。还有Java do是生成这个文档信息的。还有compile test。Process都是处理啊,测试相关的代码以及测试相关的配置文件的。你会发现测试代码和测试相关的信息,它都依赖了业务逻辑代码。
19:04
然后还有这个价将当前项目打成架包的。以及这个部署。upload部署相关的。还有assemble组装相关的。这个组装大家可能并不太熟悉,组装它实际上可以将当前项目打成对应的架包。踏包,Z包等等啊,或者说袜包也是可以的。再一个这个test classes主要是针对src目录下的test目录的啊,说白了就是跟针对测试啊。包了。还有这个test,它是执行所有的测试方法的啊,而test classes呢,是编译。这个。测试类的。还有这个check啊,Check实际上也是依赖了咱们这个T,它是检查咱们的代码。最后你会发现,这个build的指令既依赖了check,也依赖了。
20:01
咱们运行great build指令的时候,它实际上会把前面被依赖的这些指令啊,或者说被依赖的这些类全部执行完毕之后,在最后在这些build。当然,这里还有一个clean指令,Clean指令和它们之间是分开的。OK啊,然后这个图中涉及到各个指令的解释,刚才咱们也给大家说过了,有兴趣的同学也可以啊,看一下这个。
我来说两句