1、定义Task

Task顾名思义是"任务"的含义,gradle就是由一个一个任务来完成的。Task其实也是一个类,有自己的属性,也可以"继承",甚至还有自己的生命周期。Task的定义方式有很多,下面我们来看一个最简单的实现:

task sayHello {
    println "Hello World!" 
}

2、执行Task

在与build.gradle相同的目录下执行:gradle sayHello 即可。

3、Task生命周期

我们知道,Gradle的构建分三个阶段:

(1)Initialization:配置构建环境以及有哪些 Project 会参与构建(解析 settings.build)
(2)Configuration:生成参与构建的 Task 的有向无环图以及执行属于配置阶段的代码(解析 build.gradle)
(3)Execution:按序执行所有 Task

其实上面sayHello的执行时机为配置阶段,在配置阶段的代码只要在执行任何Task都会跟着执行,如下所示:

task sayHello {
    println "Hello World!"
}

task copyFile(type: Copy) {
   from 'src'
   into 'dest'
}

即使只执行gradle copyFile任务,也会先执行sayHello任务的:

E:\mybatis>gradle copyFile
Starting a Gradle Daemon (subsequent builds will be faster)

> Configure project :
Hello World!
##注意:此时先执行sayHello,后执行copyFile

BUILD SUCCESSFUL in 13s

如果我们希望不被执行的话,就只能放到执行阶段了,最直接的方法就是加到doLast、doFirst里,如下所示:

task sayHello {
    doLast {
        println "Hello World!"
   }
}

task copyFile(type: Copy) {
   from 'src'
   into 'dest'
}

标签: none

站长收徒,2021年第1期,限时优惠,截止到1月25日,错过再等半年>>>>>>






添加新评论