Gradle Composite builds and 3rd party jars (how to prevent jar hell sort of...?))

At twitter, the whole repo uses the same version of each jar(pretty much). there is a master list. I have this master list in a multi-project build which works great BUT looking at composite builds here

There seems to be no example how I can bring my HashMap up one level to the composite build such that every build gets this map of jars to reference if they depend on anything in it or not. Is there a way to even do this or am I screwed here (allowing jar hell to creep in much more easily). I am hoping there is a solution.

We would like to change the version once across the whole repo to avoid jar hell. YES, this is a pain when we need to do it of course, but it’s also much more efficient than 8 teams doing it and running into the same issue, googling, etc. Also, as they bring in the same libraries, they could run into this issue anyways if a developer upgrades a jar that a library depends on and everyone uses that library.

the examples were last updated in 2016 by @st_oehme it looks like. Perhaps you may know?


Oh shucks, this issue just exploded more. We need ONE file for all jar versions so that we can do this in circle CI or the caching is not working

 - save_cache:
        - ~/.gradle/caches
      key: v1-gradle-cache-{{ checksum "config/alljarversions.gradle" }}

Basically, we update the cache when someone modifies that one file. Of course, THEN there is the issue of creating a cache for the plugins. I am not even sure where plugins get cached? BUT if I knew that AND there was a single file for bringing in plugin versions, I could cache that as well. This SPEEDS up the builds a TON!!! so CI is not downloading jars every time.