Slackbot
08/31/2023, 10:13 AMAdam
08/31/2023, 10:22 AMinterface FooExtension: ExtensionAware {
val property1: String
interface Bar: ExtensionAware {
val property2: String
interface Buz: ExtensionAware {
val property3: Boolean
val property4: String
}
}
}
val fooExtension = extensions.create<FooExtension>("foo")
val barExtension = fooExtension.extensions.create<FooExtension.Bar>("bar")
val buzExtension = barExtension.extensions.create<FooExtension.Bar.Buz>("buz")
Then Gradle will generate Kotlin DSL accessors
(it's not strictly necessary to extend ExtensionAware, Gradle will add it automatically, but it helps makes things clear)Thomas Broyer
08/31/2023, 10:23 AMval bar: Bar?
(and accompanying fun bar(action: Action<Bar>))Thomas Broyer
08/31/2023, 10:24 AMExtensionAware so, yes, fooExtension.extensions.create<Bar>("bar") then)Jakub Chrzanowski
08/31/2023, 10:24 AMProperty<String> everywhere.Adam
08/31/2023, 10:25 AMJakub Chrzanowski
08/31/2023, 10:29 AM