从项目中删除未使用的罐子

flo*_*pot 9 java ant jar


从我的java(ant)项目中删除未使用的jar的最简单方法(工具?)是什么?我们的项目变得非常庞大,我们想要做一个清理工作.有几个jar添加到类路径中,但并非所有jar都用于编译/运行.有没有办法通过从命令行运行一些实用程序来识别不必要的jar?
注意:我们不想按照删除一个或多个jar的繁琐过程,然后编译/运行来测试是否需要这些jar.

flo*_*pot 11

这就是我最后所做的,
我使用JBOSS TattleTale(http://www.jboss.org/tattletale)在编译时识别未使用的罐子(它报告了17罐未使用).
然后对于该列表中的每个jar,我对我的项目进行了字符串搜索,以查找是否在任何地方使用了jar的最高包级别(这是尝试查看是否使用反射加载了属于此jar的任何类) .
这样我就可以成功地从我的项目中消除6个罐子.
由于编译时未使用的罐子数量很少,这种方法很快.


Dan*_*lan 5

如果有更好的解决方案,我很乐意听到。

问题是,即使不需要 jar编译,也可能需要运行. 而这种“需要”可能是传递性的。EG:您使用的 jar 需要一个您不使用且仅在运行时使用的 jar。正如运行时错误的性质一样,它们只会在您尝试执行代码时显示出来。最坏的情况是,在您在生产中运行之前可能不会发生这种情况。

我所知道的最佳解决方案正是您不想做的:“删除一个或多个 jar,然后编译/运行以测试是否需要这些”。