我正在编写一个插件,其中执行以下操作:

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/

    10-12 04:25