Gradle的Task介绍
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'
}