I am writing an application that I've split into multiple jars including re-usable infrastructure libraries, each has their own versions (BOM managed) and git repositories. I'm doing this for a number of reasons. some of these would be reusable if I decided to start writing a completely different application, and I may decide to release them as open source.by making them different modules, as they stabilize I will not have to re-build code over and over again, the modules APIs will stabilizeprevent myself from improper layering and dependencies by ensuring there isn't any class path compile time visibility in some cases.however this has left me with some development overhead. Mainly these problemsI have something like a dozen repos cloning them if on a fresh install is annoying.I can't view or refactor code together in intellij while making changes to upstream libraries as needed. note: these aren't changing together all the time, just need to improve upstream first sometimes, but would be useful to do it in context.even if I open all the repositories in intellij at once, it doesn't treat them as interdependent, thus renaming one class wouldn't update references, etc appropriately. It wants me to mvn install them first.if I need to release multiple modules, I have to go into each module and type mvn release, I don't see a good way to do it for the modules that have changed since last release at once (they would still have different versions).I've thought about making a multi-module repo, but then I still have the repo problem, and doesn't seem to make sense since I release them with their own versions. Every time I've seen git submodules used (including my own attempts) they caused more problems than they solved. I could just write some shell scripts or makefiles or something, but that seems like a last resort.It's possible that I should just bear through the early pain while things stabilize. Is there a good tool(s) that will solve my problems?
How can I holistically manage a multi module multi repository application
java;git;maven