2
我正在開發一個定製的搖籃插件,我想定義的配置閉合(插件擴展名)是這樣的:嵌套對象
myplugin {
property1 'value'
property2 {
a1 'hello'
a2 'bye'
}
}
我有這個類:
public class MyPluginExtension { //root extension
String property1;
Property2 peroperty2;
//getters and setters
}
public class Property2 {
String a1;
String a2;
//getters and setters
}
而且,在插件項目中,我創建擴展這種方式:
project.getExtensions().create("myplugin", MyPluginExtension.class);
但在我的客戶項目,當我應用程式LY和配置如上所示的插件,我得到這個錯誤:
Gradle DSL method not found: 'property2()'
我如何定義我MyPluginExtension
類property2
關閉?
編輯
我已經試過這樣:
public class MyPluginExtension { //root extension
String property1;
Property2 peroperty2;
//getters and setters
public void property2(Closure c) {
c.setResolveStrategy(Closure.DELEGATE_FIRST);
c.setDelegate(property2);
c.call();
}
}
但現在我得到這個錯誤:
Gradle DSL method not found: a1()
它無法解決嵌套封場。
謝謝。如果我使用Java而不是Groovy,那麼呢? –
只需使用java語法定義它。也應該工作。 – Opal
謝謝。我試過了,似乎解決了,但現在它不能解決嵌套閉包字段。看看我的編輯。 –