3

私は次のようなことをするプラグインを書いています:

project.extensions.create('myExtension', new MyExtension(project))

MyExtension私の新しい機能を定義するクラスはどこですか。

今、gradle.build私はこれを行うことができます:

myExtension {
    // configure cool stuff
}

私が今やりたいことは、このconfigureクロージャーのいくつかを「消費」し、残りのクロージャーを定義したタスクにそのまま渡すことproject.configure(myTask, closure)です. ただし、方法がわかりません

  1. MyExtensionクラスから configure クロージャにアクセスします。

  2. クロージャーの一部を「消費」します。つまり、クロージャーのいくつかのプロパティにアクセスしてからそれらを取り除き、手付かずのものだけを持つ別のクロージャーを残します。

どんなポインタでも大歓迎です=)

4

2 に答える 2

1

拡張機能の仕組みではありません。クロージャーは、拡張オブジェクトを構成するためにすぐに評価されます。その後、閉鎖はなくなりました。通常、プラグインは拡張オブジェクト (に含まれる情報) を使用して、タスクをさらに構成します。

PS:extensions.create('myExtension', MyExtension, project)ではなく、project.extensions.create('myExtension', new MyExtension(project))です。

于 2013-06-29T07:28:49.223 に答える