我们有一个小项目,它有一些重量级的依赖关系(例如Spring),我们只使用小部分。因此,我们在打包所有依赖关系时所得到的JAR重达几兆字节,即使是两级服务器也是如此。这似乎没有必要。从jar中排除未使用的依赖项部分(Maven)
有没有办法将JAR程序集限制为实际使用的(类)文件?
我们有一个小项目,它有一些重量级的依赖关系(例如Spring),我们只使用小部分。因此,我们在打包所有依赖关系时所得到的JAR重达几兆字节,即使是两级服务器也是如此。这似乎没有必要。从jar中排除未使用的依赖项部分(Maven)
有没有办法将JAR程序集限制为实际使用的(类)文件?
您可以使用maven-shade-plugin创建Jar-with-dependencies(将项目和依赖关系合并到一个大jar中),同时限制添加到该jar的类或包。请参阅includes/excludes page以供参考。
如果您不想手动指定需要包含什么,也许有一种方法可以将ProGuard与您的版本集成。
不可能仅包含使用的类。但是你可以exclude dependencies from your depencies来减小JAR的大小。唯一的缺点:你需要知道你可以排除什么,什么不可以排除。
我在ProGuard网站上发现了很多有用的参考资料,谢谢!即使Maven无法自动执行此操作(耻辱),但似乎希望使用其他工具。 – Raphael
maven shade插件现在允许通过' true minimizeJar>'配置自动过滤 –
harschware
我刚刚在一个项目上尝试过它,它将我的jar大小减少了36%,不需要额外的配置。 – harschware