00:00
欢迎大家继续观看上硅谷技术视频,这节课我们提一下任务之间的依赖方式。我们知道,我们可以在build.gr文件中可以定义一个task,也可以定义多个task,这多个task之间可以没有任何关系,也可以之间有依赖关系。那如何定义任务之间的依赖关系呢?这里有如下三种方式。第一种就是在参数上定义任务之间的依赖,第二种就是在任务内部定义任务之间的依赖,第三种就是在任务外部定义任务之间的依赖。首先我们看第一种方式,在参数部分定义任务之间的依赖。比如我这里声明了两个task,一个是task a,一个是task b,然后在这两个task里边定义了任务的行为。啊,然后接着我这里声明了一个task c,然后在task c的参数部分通过depends on关键字。然后后边跟一个任务的列表。然后指定被依赖的任务是谁。
01:02
然后当我们在执行。这个任务C的过程中,他会先执行被依赖的任务A和任务B。需要注意的是,咱们在生成任务的过程中,我们可以使用单引号引起来,也可以啊,使用双引号甚至可以啊,不使用引号引起来。嗯,来吧,这样咱们就把这个复制过来给大家演示一下。由于比较简单,所以我们就不代表大家手敲了。来,我们把复制过来的给它覆盖掉。啊,声明了一个任务A,一个任务B,然后声明了一个任务C,然后在参数部分使用底配关键字。注意,这个关键字是不允许改变的。OK啊,这样咱们也执行一下。这个任务C。在执行任务C的时候,大家会看到他会先把被依赖的任务A和任务B输出,然后再输出啊。
02:01
这个任务C。没有问题。这是在参数部分做的依赖,当然我们也可以在任务内部做依赖,比如说我们也可以这样写,把这个。给他调到。任务内部做依赖也是可以的。来,此时我们再来看。再来执行啊,先执行clean。再执行grade。C执行这个任务C。也是没有问题的。同样,咱们还可以在任务外部做依赖。比如说。我可以把这个依赖给他调到外部去。定义任务C依赖,那就是用这个C任务名,然后在这里用底盆子啊。
03:04
Depends on。然后后边。或者说你用内有C,然后抵分之二。后边跟。跟这个任务列表。也可以。咱们再来。先执行g clean。然后再来执行多C。这样也是可以的。啊,这样我们就可以在任务的外部啊,依赖其他任务了。OK啊,当然咱们任务之间也是支持跨项目进行依赖的,比如我们在sub project01这个工程中。的build文件里边添加了一个任务A,然后在sub product0,二。
04:06
这个工程的build grade文件里边添加了一个任务B,然后让任务B依赖了。这个一中的。这个任务也是可以的,来我们演示一下。把它给复制过来,然后我们再。这个零一的。这个build文件中定义出来。然后接着咱们在sub product02里边。再定义一个task任务B。然后让这个任务B依赖。Sub product01中的内务啊,这样也是可以的。这个实际上就是啊。PROJECT01,它的那个工程的名字。
05:03
这里用的是相对路径,相对于根工程,就是在根工程底下先找到sub product01,然后再找到sub product01里边定义的那个任务A。OK啊。这样也是可以的。这样咱们来到。这个含有build这文件的这个目就是sub product0,在这里执行一下永B。来到这个目录底下之后直接执行啊B。执行这个任务B就可以了。你会发现它也是先。执行了被依赖的那个任务A,然后又执行了这个任务B。啊,没有问题。再一个,这里我们继续给大家拓展了一个,他说当一个task依赖多个task的时候。那被依赖的。
06:00
这多个task之间如果没有依赖关系,那么它们的执行顺序是随机的啊,而且啊,相互没有影响。啥意思呢?就这意思啊,比如说一个task a依赖了task b,同时也依赖了task c。那task b和task c它们之间是没有依赖关系的,那他们的执行顺序实际上是随机的。啊,就这意思,再一个重复依赖的任务只会执行一次,比如这里举了个例子啊,比如说。任务A依赖了任务B和任务C,任务B又依赖了任务C。那么任务C就被重复依赖了。但是在执行的时候。被重复依赖的这些任务,他只会啊执行一次啊,就是C只会执行一次。OK啊,这是这个类的依赖方式,以及对类母依赖的一些拓展。
我来说两句