从Maven的角度来看,JAR文件通常不包含依赖项。因此,您必须在谈论:
- WAR或EAR或类似文件,
- 通过合并大量JAR文件而产生的所谓的UberJAR文件;例如使用Maven阴影插件,或
- 依赖比Maven模块更精细。
在前两种情况下,可以通过在依赖关系规范或war或shade插件构建描述符中排除名义上依赖的JAR来排除它们。IIRC,shade插件还允许您排除特定的程序包和类。
最后一个可能需要单独的工具来对JAR文件进行后处理。摆脱未使用的类是混淆器可以做的事情。但是,您需要注意不要消除反射性使用的类或类名。例如通过DI /
IoC框架或AOP框架。
(通常,这种工具通过分析.class文件外部引用隐含的依赖关系来尝试找出使用了哪些类。DI / IoC /
AOP等引入了.class文件中不明显的其他类型的依赖关系结构体。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)