gradle创建自定义任务

时间:2019-08-20 10:33:20

标签: gradle

我对在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? 用户应使用哪种变体?

1 个答案:

答案 0 :(得分:1)

Gradle API具有许多定义任务的方式。只要您一致,对于应用程序开发人员来说,没有“正确”或“错误”的方式,但是对于 Gradle插件作者而言,这确实很重要。

您链接状态的避免任务配置文档(重点是我):

  

从Gradle 5.1开始,我们建议在由自定义插件创建任务时使用配置回避API

因此,如果您是插件作者,请尽可能避免使用任务配置

对于其他所有人(应用程序开发人员),只要您在整个应用程序中保持一致,则在一定程度上并不重要。

相关问题