I would like to combine several jars into an Uberjar.
In Java I know how to shade dependencies using these two tools:
- https://maven.apache.org/plugins/maven-shade-plugin/
- https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow
But I have a web service that needs to take a dynamic classpath and create an uberjar from it. But being that it is literally a backend server, Maven and Gradle are not tools available for use.
As you can see from the source code of these plugins, it's not just as easy as build a combined zip file with all their contents. You have to do some resolution on duplicate resources, and some special log4j cache configuration as well.
Is there a Java library that is capable of creating the same thing John Rengelman's shadow tool does, but without actually running from Maven/Gradle?