29

我最近接受了用 JSF 编写的 Web 系统的支持和编程。代码有点凌乱和冗余,是的,​​不存在文档。

系统有 40 多个 jar 库,其中大部分是由于旧版本和测试的冗余。要删除一个 jar,我必须检查它没有在代码中导入,所以我在代码中搜索了 jar 导入路径(我使用的是 IntelliJ IDE),确保它没有被使用,然后将其删除。

但是,在编译代码后,在测试过程中出现了一些运行时错误。我发现我删除了一些其他现有罐子使用的罐子。

问题是,在删除一个 jar 之前,我如何确保它没有被另一个 jar/java 类使用?

尽管 jars 已经编译了类,但编译后的类确实具有所需库的导入路径。但我不能用 IntelliJ 搜索它们(不在 jars 文件中搜索)。

我现在做的唯一方法是每次删除 jar 时测试系统,看看我是否可以让它崩溃!由于要测试的功能数量庞大,这完全不是一个简单的方法。

我希望有一个工具可以提交许多 java 文件/jar,并显示它们之间的依赖关系。

4

6 回答 6

21

我知道 JBoss 项目中有一个名为 JBoss TattleTale 的工具,可能值得一看:

http://www.jboss.org/tattletale

于 2009-04-24T16:53:43.010 回答
6

JDepend将为您分析任意数量的 JAR、类文件等的依赖关系。将它报告的包与这些 JAR 相关联应该是一个微不足道的额外步骤。

于 2009-04-24T17:08:55.410 回答
1

为什么不将 Maven 用于您的项目?这将帮助您管理依赖项。

于 2009-04-24T16:53:16.150 回答
1

我还找到了 JarAnalyzer,但它似乎不再维护了。

于 2011-08-17T08:20:05.157 回答
1

嗯,现在是 2013 年,所以我不确定这个工具在 2009 年是否很棒。刚刚使用它,发现它很有用: Class Dependency Analyzer (CDA) (V1.14) http://www.dependency- Analyzer.org/ 这个工具有一个图形用户界面(Swing?)。添加 lib jar 和 Java 类后,它将显示 Class/Package/Container(jar) 级别的依赖关系。它也可以显示家属。所以很容易找到依赖的jar和依赖的jar。

于 2013-09-26T02:39:56.190 回答
-1

还有来自 Jini SDK 的 ClassDep。

http://java.sun.com/products/jini/2.0/doc/api/com/sun/jini/tool/ClassDep.html

于 2009-04-24T18:15:01.663 回答