Create vs maybeCreate

I was reviewing @bmuschko 's slides on plugins and it made me think about using projects.configurations.create vs projects.configurations.maybeCreate in a plugin. In the example


is used, which essentially means that the docker configuration is not allowed to pre-exist and that it is only visible within project scope.

The alternative of this is to do


which essentially says is create the configuration, but if it exists just re-use it.

Implementation #1 is very specific, but potentially less flexiable for certain edge-cases that #2 would allow for.

Implementaiton #2 does allow for more flexibility, but potential also side-effects, if the configuration was already created beforehand in the build script. But it also allows two plugins using the same configuration to co-exist. The latetr might indeed be a design decision

I guess there is also an argument to be made for either depending on whether the configuration is intented to be added to within a project or whether it is a covert one, mostly only for internal plugin usage.