如何在Gradle中传递一个任务扩展对象到一个闭包?

问题描述 投票:0回答:1

比方说,我有一个插件,它可以在任务扩展对象中添加 MyTask.classMyTaskExtension.class 到一个项目。

MyTaskExtension.class 有五个设定器,其中三个可以在不同实例中通用。

我如何将一个类型的 MyTaskExtension.class (用于配置MyTask.class的DSL的扩展)到闭包,这样我就可以访问它的成员了? 我的尝试是这样的。

Closure commonSettings = { ExtensionContainer.findByType(MyTask) t -> { 
  t.a = "a"
  t.b = "b"
  t.c = "c"
}}

然后用这个功能 Closure 应用到Gradle DSL中的MyTask实例。

例如

task One(type: MyTask) {
  commonSettings.call(this)
  d = "d"
  e = "e"
}
task Two(type: MyTask) {
  commonSettings.call(this)
  d = "4"
  e = "5"
}

相关的 在Gradle中为任务分组继承属性

gradle closures
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.