Gradle任务定义

mkh04yzy  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(117)

这三种在build.gradle中定义任务的形式看起来是一样的。它们都调用org.gradle.api.internal.project.DefaultProject#task(java.lang.String, groovy.lang.Closure),但我真的不明白第二种和第三种是如何工作的。

def myAction = {t -> println "${t.name} [${t.class.name}]"}

task('myTaskA') {task ->
    group = 'MyTasks'
    description = name
    doLast myAction
}

task myTaskB {task ->
    group = 'MyTasks'
    description = name
    doLast myAction
}

task myTaskC() {task ->
    group = 'MyTasks'
    description = name
    doLast myAction
}
c0vxltue

c0vxltue1#

Task Configuration Avoidance:自Gradle 5.1起,建议在自定义插件创建任务时使用配置避免API。配置避免API将与现有API共存,在几个主要版本中,现有API将替换为常见的弃用流程。简而言之,该API允许构建避免在Gradle的配置阶段创建和配置任务的成本,这可能对总配置时间具有显著影响。
请使用“tasks.register('...') {…}”API代替“task ... {…}“、“task ... << {…}”、“task('...') {…}“等。

相关问题