用于删除Java项目中不必要的依赖项的工具

我有一个Java项目,它的库目录中当前有很多JAR,它们在构建时都包含在生成的包中。 但是,我知道其中一些libs从未在项目中引用过。

是否有工具可以搜索项目中未引用的库? 我想在那个意义上肯定有一些东西。

BTW,一个Eclipse插件会很棒。

编辑:我选择使用ClassDep因为它是唯一有效的建议。 但是,我遇到了一些麻烦:请检查这个问题

ClassDep (来自Sun,Jini开发工具包中)将为您完成此任务。

注意通过Class.forName()加载类并且未在清单文件中指定为依赖项的情况(有一个Depends-On:属性,但许多人没有指定它,像这样的工具,当我使用这样的工具时,我存在的祸根)。

ClassPathHelper可以帮助您。

特别是“不在类路径视图”

不在Classpath上

此视图扫描不在类路径上的jar(但在当前项目下)。 它提供了可用但不在类路径上的包和类的基本浏览。 这在尝试构建类路径时很有用,因为您可以快速浏览缺少的类以查看哪些jar包含它们。

不是eclipse插件,但我相信ProGuard的“缩小”function正是您所需要的。

我写了一个小的eclipse插件,它从工作区中获取现有的java项目 。 对于项目原始类路径的每个类路径条目 ,它将从项目原始类路径中删除它并构建项目 。 如果项目中没有出现严重性错误的问题 标记 ,则会从项目原始类路径中永久删除类路径条目。

我无法共享该插件,但是使用上面给出的api链接自己实现它并不是太多工作。

您还无法判断您不导入的JAR是否需要依赖项的依赖项。 例如,如果您使用Spring,它会带有自己的依赖项,即使您没有在代码中导入或调用这些类。 我对ProGuard一无所知 – 是否检查了这些情况?