I have a situation where there is a small piece of Java code that has a large number of jars that it depends on. However, the dependencies inside these jars are very shallow. In most cases it only depends on a jar for a single interface.
Instead of distributing all of the jars with the application, I would like to just distribute the specific class files inside the jars that it actually uses. The reason for this is to conserve space (this code will live in an applet).
Does anyone know of a tool or method to do this automatically? Assuming all of the dependencies are static, this seems entirely possible. Any ideas?
Classdepandjar will strip down a codebase to the essential classes. It's used in the Jini world for delivering optimally-sized jars, but there's nothing Jini-specific about it.
Available as an Ant task.
As far as I know, this is maven only, but it's a good start
Maven Shade Plugin: This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade - i.e. rename - the packages of some of the dependencies.
ProGuard does shrinking/optimizingh and also obfuscation. I think you can config it to do just one or the other.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With