更多关于任务
首先:运算符 <<
(leftShift)相当于 doLast {closure}
。从 gradle 3.2 开始,不推荐使用。所有任务代码都在 build.gradle 中编写。
任务代表构建执行的一些原子工作。这可能是编译某些类,创建 JAR,生成 Javadoc 或将一些存档发布到存储库。
Gradle 支持两大类任务:简单和增强。
我们来看一些任务定义样式:
task hello {
doLast{
//some code
}
}
或者:
task(hello) {
doLast{
//some code
}
}
上述任务是等价的。此外,你可以为任务提供一些扩展,例如:dependsOn
,mustRunAfter
,type
等。你可以通过在任务定义后添加操作来扩展任务,如下所示:
task hello {
doLast{
println 'Inside task'
}
}
hello.doLast {
println 'added code'
}
当我们执行此操作时,我们得到:
> gradle -q hello
Inside task
added code
这里检查有关任务依赖性和排序的问题
我们来谈谈两大类任务。
简单:
我们使用动作闭包定义的任务:
task hello {
doLast{
println "Hello from a simple task"
}
}
增强
增强它是一项具有预配置行为的任务。你在项目中使用的所有插件都是扩展或增强的任务。让我们创建我们的,你将了解它是如何工作的:
task hello(type: HelloTask)
class HelloTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from our custom task'
}
}
此外,我们可以将参数传递给我们的任务,如下所示:
class HelloTask extends DefaultTask {
String greeting = "This is default greeting"
@TaskAction
def greet() {
println greeting
}
}
从现在开始,我们可以像这样重写我们的任务:
//this is our old task definition style
task oldHello(type: HelloTask)
//this is our new task definition style
task newHello(type: HelloTask) {
greeting = 'This is not default greeting!'
}
当我们执行此操作时,我们得到:
> gradle -q oldHello
This is default greeting
> gradle -q newHello
This is not default greeting!
所有关于开发的问题都会将插件插入官方网站