如何识别项目中包含的不必要的罐子?

时间:2009-06-18 12:11:00

标签: java jar

我在Java项目中工作,其中使用了Apache的axis 2库。轴2库由大约20个jar文件组成,其中一些不用于项目。如果有一种方法可以识别哪些jar文件是未使用的文件,我想知道。

我正在使用Eclipse IDE,我认为解决问题的一种方法是在时间上添加一个jar,直到我没有得到关于缺失类的错误消息。但是,我不确定这是否会起作用,因为一些缺少的类错误仅在运行时出现。

有谁知道更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:6)

tattletale FTW

http://www.jboss.org/tattletale

JBoss Tattletale是一款工具,可以帮助您全面了解您正在进行的项目或您所依赖的产品。

该工具将为您提供可以帮助您的报告

  • 识别JAR文件之间的依赖关系
  • 如果一个类位于多个JAR文件中,则发现
  • 如果相同的JAR文件位于多个位置,则发现
  • 列出每个JAR文件所需的内容并提供

答案 1 :(得分:1)

我会遵循你最初的想法,即添加一个罐子直到它编译。<​​/ p>

你是对的,你仍然可以找到运行时错误,但除非应用程序太大而无法通过手动测试获得良好的覆盖率,否则我只需运行并测试它以添加任何丢失的jar。

答案 2 :(得分:1)

我认为你不能可靠地删除jar,因为类可以在运行时解析,例如使用

Class.forName(className);

您可以确定用于上述的类名,但这不太可能。

由于将在运行时请求/解析类,因此您可以运行(综合)测试套件来确定是否仍然有效。但最终我会非常谨慎地从像Axis这样的软件包中删除jar。我认为他们是出于某种目的。 jar文件大小真的有问题吗?