Loading classes from jars-inside-jars is not possible using the standard Java class loader. However, this is possible with a custom class loader, here's how UberJar works.
The maven shade plugin takes a different approach. He will unpack all the jars on which you depend, and pack them (together with his own classes) in one large jar. Then you can use a regular class loader. It is simpler and also possible without maven using jarjar .
source share