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