Hello Gradle community,
I apologize if this has been asked before (please point me to a correct thread if this has already been discussed).
we have an old Ant/Ivy-based multi-project build infrastructure which we’re trying to migrate to Gradle. there are 30+ subprojects and some of them depend on each other’s artifacts.
one feature people really like is the ability to build only the subproject they’re working on. Everything else is fetched from Artifactory. if they need to rebuild the entire stack, they simply run the top level script, which figures out the build order using Ivy’s ‘buildlist’.
as far as I understand from The Manual, Gradle’s multi-project builds can be used to achieve a similar effect, but it seems that if project B declares a dependency on project A, then if I need to build B, Gradle will try building both.
for this to be efficient, the Incremental Builds have to be configured really well and our projects are quite far from that point at the moment for several reasons.
so what we’d like to do is :
every single subproject behaves as an ‘independent’ project (fetching dependencies from Artifactory if needed)
the top level build figures out the build order using subprojects’ dependency declarations
can this be done with Gradle in some non-hacky way? if not - can you please provide some suggestions as to how this (or similar) behavior can be achieved with Gradle?
Thanks in advance