But it seems that Gradle developers would not like to expose Ivy to the users.
We don’t want to tie it to the core. As we extract it from the core we are pushing it out so we can expose it via a plugin. Why we are doing this below…
But I think that while Gradle developers try to find the lowest common denominator between Ivy and Maven and expose this as pure Gradle API
It’s probably fair to say that this was the strategy when Gradle was started, however it’s not our strategy now. Rather than abstracting over the two protocols/formats, we are working towards adapting to them. So, at the core there is a general engine that specific protocols can be plugged into in a sense. In the publication space, you can see this starting to happen already with the new Ivy publish stuff we delivered in 1.3.
However, we still have a long way to go. It’s challenging to make such a fundamental change in a backwards compatible way, which is what we have to do.
In short, our strategy going forward is to “adapt” and not to “abstract” WRT dependency management protocols.