我对在Gradle上创建自定义任务的正确方法有些困惑。在Creation of custom tasks的教程中,他们这样使用tasks.register
:
def check = tasks.register("check")
def verificationTask = tasks.register("verificationTask") {
// Configure verificationTask
}
check.configure {
dependsOn verificationTask
}
代替here(仍是Gradle官方文档),他们以这种方式创建新任务:
task('hello') {
doLast {
println "hello"
}
}
task('copy', type: Copy) {
from(file('srcDir'))
into(buildDir)
}
和
tasks.create('hello') {
doLast {
println "hello"
}
}
tasks.create('copy', Copy) {
from(file('srcDir'))
into(buildDir)
}
最后,根据文档https://docs.gradle.org/current/userguide/task_configuration_avoidance.html,他们建议从第二种/第三种情况转移到第一种情况。这是否意味着第二/第三种情况已过时?如果是,为什么Gradle仍在其文档中大量使用旧API? 用户应使用哪种变体?
答案 0 :(得分:1)
Gradle API具有许多定义任务的方式。只要您一致,对于应用程序开发人员来说,没有“正确”或“错误”的方式,但是对于 Gradle插件作者而言,这确实很重要。
您链接状态的避免任务配置文档(重点是我):
从Gradle 5.1开始,我们建议在由自定义插件创建任务时使用配置回避API 。
因此,如果您是插件作者,请尽可能避免使用任务配置
对于其他所有人(应用程序开发人员),只要您在整个应用程序中保持一致,则在一定程度上并不重要。