Thanks to Java modules, jlinker and packager tool, the idea is that you just distribute everything together.
https://docs.oracle.com/javase/10/tools/jlink.htm#JSWOR- GUID-CECAC52B-CFEE-46CB-8166-F17A8E9280E9
"Self-Contained Application Packaging"
https://docs.oracle.com/javase/10/deploy/self-contained-appl...
"JLINK in Java-9"
https://blog.knoldus.com/jlink-in-java-9/
"Using Java 9 Modularization to Ship Zero-Dependency Native Apps"
https://steveperkins.com/using-java-9-modularization-to-ship...
We have done it multiple times.
As for Spring, I never used it in anger.
Our Java Web projects usually are built on top of JEE stacks or Jersey.
https://blogs.oracle.com/java-platform-group/understanding-t...
We have done it multiple times.
I'm how sure how I feel about it with the JRE. I have old open source apps on Scala 2.11/SBT 0.13 that are already experience dependency rot. :-/ It's going to be more difficult too since deprecated stuff is finally getting removed from Java.
I'm curious to see where we'll be a few years from now.