我在Java项目中工作,其中使用了Apache的axis 2库。轴2库由大约20个jar文件组成,其中一些不用于项目。如果有一种方法可以识别哪些jar文件是未使用的文件,我想知道。
我正在使用Eclipse IDE,我认为解决问题的一种方法是在时间上添加一个jar,直到我没有得到关于缺失类的错误消息。但是,我不确定这是否会起作用,因为一些缺少的类错误仅在运行时出现。
有谁知道更好的方法来解决这个问题?
答案 0 :(得分:6)
tattletale FTW
http://www.jboss.org/tattletale
JBoss Tattletale是一款工具,可以帮助您全面了解您正在进行的项目或您所依赖的产品。
该工具将为您提供可以帮助您的报告
答案 1 :(得分:1)
我会遵循你最初的想法,即添加一个罐子直到它编译。</ p>
你是对的,你仍然可以找到运行时错误,但除非应用程序太大而无法通过手动测试获得良好的覆盖率,否则我只需运行并测试它以添加任何丢失的jar。
答案 2 :(得分:1)
我认为你不能可靠地删除jar,因为类可以在运行时解析,例如使用
Class.forName(className);
您可以确定用于上述的类名,但这不太可能。
由于将在运行时请求/解析类,因此您可以运行(综合)测试套件来确定是否仍然有效。但最终我会非常谨慎地从像Axis这样的软件包中删除jar。我认为他们是出于某种目的。 jar文件大小真的有问题吗?