Plugins { id '...' } - snapshot and dynamic versions


(Andrey Hihlovskiy) #1

Dear Gradle colleagues,

Thank you so much for Gradle 4.0 - it is really great and pleasure to use.

The problem I wanted to discuss here was already articulated before: pluginManagement.repositories do not allow resolution of snapshot and dynamic dependencies. This becomes critical for us at Apple Maps for adopting the plugins { id “…” } mechanism.

Please understand my motivation/workflow: I would like to publish snapshot versions of my Gradle plugins to file-based maven repository and perform integration tests on them. As soon as tests are successful, there’s green light for setting release version and actually releasing Gradle plugins, BUT NOT EARLIER than that. Using release versions for testing is not an option, sorry. Dev/CI builds are always snapshot builds by us.

Also, I don’t like the idea that hundreds of projects should use static version of gradle plugins. If I release a new version of my plugin, I want all projects to use it automatically, without painful/errorprone modification of their gradle scripts. This means: I want to use dynamic versions of gradle plugins via plugins { id “…” } mechanism.

I would be very thankful, if you could fix this or suggest alternative solution.

Best regards,
Andrey Hihlovskiy.