1.定义Tasks
先看创建Tasks的代码示例:
//方式1
task hello
//方式2
task hello {
println 'Hello, world!'
}
//方式3
task hello << {
println 'Hello, world!'
}
//方式4
task(hello) << {
println 'Hello, world!'
}
//方式5
task('hello') << {
println 'Hello, world!'
}
//方式6
tasks.create(name: 'hello') << {
println 'Hello, world!'
}
上面六种方式都创建了一个名为 hello
的task.但是他们是有区别的,方式1是个空任务,它不会干任何事;方式2和方式3在代码上看就差一个双箭头,但是它们是有本质区别的;方式2中,打印“hello,world“字符串的语句会在执行任务之前运行,而方式3会在执行任务的时候打印出”hello,world”,也就是说**方式2中的语句实在configuration阶段执行的,方式3中语句则是在execution阶段执行的;方式4、5、6是方式3的不同表现形式,本质上是一样的。看如下代码执行的结果:
task hello << {
println 'Execution'
}
hello {
println 'Configuration'
}
执行结果如下:
$ gradlew hello
Configuration
:hello
Execution
再看一种比较复杂的定义Task的方式,这种方式使用了doFirst 和doLast 代码块,它可以控制代码执行的先后顺序:
task mindTheOrder {
println 'Configuration'
doFirst {
println 'Not really first.'
}
doFirst {
println 'First!'
}
doLast {
println 'Not really last.'
}
doLast {
println 'Last!'
}
}
执行结果如下: