减少jar文件大小

5 java size jar maven

有没有办法减少jar文件的大小?

我想要一个减少未使用的依赖项的工具.

我使用maven进行依赖管理.

khm*_*ise 5

如果您想了解项目使用的依赖项,只需检查maven-dependency-plugin,它可用于分析已使用/未使用的依赖项。

通过以下方式检查您的依赖关系:

mvn dependency:analyze
Run Code Online (Sandbox Code Playgroud)

或者看看 dep 树,如下所示:

mvn dependency:tree
Run Code Online (Sandbox Code Playgroud)

或者您可以查看您的 ide(取决于您使用的IDE),例如使用 Eclipse (Indigo) 和 m2e 插件,您有一个选项卡“依赖关系层次结构”,其中显示依赖关系树,包括。传递依赖。

在某些情况下,您必须小心 DI 框架使用的依赖项,这些依赖项无法通过 maven-dependency-plugin 或 ide 插件进行分析。


Ste*_*n C 5

JAR文件通常不包含Maven意义上的依赖项.所以你一定要谈论:

  • WAR或EAR或类似文件,
  • 通过组合大量JAR文件生成的所谓UberJAR文件; 例如,使用Maven阴影插件,或
  • 依赖于比Maven模块更精细的粒度.

在前两种情况下,您可以通过在依赖项规范或war或shade插件构建描述符中排除它们来阻止名义上依赖的JAR.IIRC,shade插件还允许您排除特定的包和类.

最后一个可能需要一个单独的工具来后处理JAR文件.摆脱未使用的类是混淆器可以做的事情.但是,您需要注意不要删除反射使用的类或类名; 例如,通过DI/IoC框架或AOP框架.

(一般来说,这种工具试图通过分析.class文件外部引用所隐含的依赖关系来确定使用哪些类.DI/IoC/AOP等引入了.class文件中不明显的其他类型的依赖关系.结构体.)