【问题标题】:gradle task definition syntaxgradle 任务定义语法
【发布时间】:2018-02-11 22:55:35
【问题描述】:

gradle 文档说我在 build.gradle 文件中声明任务的方式应该是

task greeting(type: GreetingTask) {
    greeting = 'greetings from GreetingTask'
}

谁能用常规语法向我解释这里发生了什么? 我知道 {} 块是闭包,它可以作为参数传递给函数,但我仍然不明白这里发生了什么

【问题讨论】:

标签: gradle groovy


【解决方案1】:

task 关键字是 gradle 特定的东西。它不是标准的 groovy,而是 gradle 使用 AST 转换添加的东西,以使 DSL 更简单。基本上相当于

project.tasks.create([name: 'greeting', type: GreetingTask]) { ... }

https://discuss.gradle.org/t/how-to-translate-task-keyword-in-dsl-into-groovy-call/7243

【讨论】:

  • 闭包跟随函数调用是什么意思?@JB Nizet
  • 这是标准的 groovy 语法。这相当于将闭包作为最后一个参数。
  • 在不了解所有内容的情况下,有没有什么通用的方法可以区分什么是 gradle 特定的,什么是 groovy 特定的?
猜你喜欢
  • 2012-10-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多