完成项目后,我想删除所有未使用的类,以减少打包时jar文件的大小。
我正在使用IntelliJ,它可以帮助我检测未使用的类,但它包括一些类只能通过反射调用(仅限运行时)。而且,它无法检测外部库中未使用的类。
一件重要的事情,我想删除外部库中未使用的类。例如,当我使用来自Google Guava的BiMap时,我必须包含Guava lib,但我只想使用BiMap,包括整个Guava使我的jar变得更大
所以,我反过来思考,而不是找到未使用的类,我想知道运行时使用/调用所有类(我将手动删除未使用的类/包)。我怎么能这样做?
答案 0 :(得分:0)
考虑使用像Proguard(http://proguard.sourceforge.net/)这样的工具来执行此操作
答案 1 :(得分:0)
我不确定如何将jar文件的内容限制为仅引用的Java类。在动态加载类时,您可能会遇到问题。
Guava在他们的网站上解释了如何使用ProGuard在构建中包含一部分Guava:https://github.com/google/guava/wiki/UsingProGuardWithGuava