我正在编写一个插件,其中执行以下操作:
project.extensions.create('myExtension', new MyExtension(project))
其中
MyExtension
是定义我的新功能的类。现在,在
gradle.build
中,我可以这样做:myExtension {
// configure cool stuff
}
我现在想做的是“消费”此配置闭包中的几件事,然后使用
project.configure(myTask, closure)
将闭包的其余部分原样传递给我定义的任务。但是,我不知道如何MyExtension
类访问configure闭包。 任何指针将不胜感激=)
最佳答案
扩展不是这样工作的。立即对闭包求值,以便配置扩展对象。在那之后,关闭消失了。通常,插件将使用扩展对象(包含的信息)来进一步配置任务。
PS:这是extensions.create('myExtension', MyExtension, project)
,而不是project.extensions.create('myExtension', new MyExtension(project))
。
关于plugins - 从gradle扩展访问configure闭包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17360544/