You shouldn’t need to work around anything if you’re using the extension mechanism across the board for your plugin properties. The situation might be different if you were trying to code MyBasePlugin
to react to what could be added to BaseExtension
by MyFooPlugin
, as opposed to MyFooPlugin
being able to handle it.
Taking your original example, if I change the creation of FooExtension
to
project.extensions.base.extensions.create('foo', FooExtension)
I can configure the FooExtension
the same way as you did in build.gradle
, but foo
is no longer available outside the context of base { }
.