10

我目前正在重构一个大型 Java 应用程序。我已将其中一个中心(Eclipse)项目拆分为大约 30 个单独的“组件”,但它们仍然高度相互依赖。为了更好地了解什么取决于我正在寻找某种方式来绘制编译时依赖关系。

到目前为止,我发现的所有工具都能够绘制包或类依赖关系或 Eclipse 插件之间的依赖关系,但是我的想法应该只是查看每个 Eclipse 项目的类路径设置并从中构建一个更粗粒度的图。

稍后我会更深入,但是现在这只是意味着我无法看到所有树木的森林。

4

9 回答 9

8

查看JBoss Tattletale。它可能无法满足您的所有要求,但值得一试。虽然它仍然相对较新。

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

  • 识别 JAR 文件之间的依赖关系
  • 从类路径中查找缺失的类
  • 发现一个类是否位于多个 JAR 文件中
  • 发现同一个 JAR 文件是否位于多个位置
  • 每个 JAR 文件需要和提供的列表
  • 验证类的 SerialVersionUID
  • 查找具有不同版本号的类似 JAR 文件
  • 查找没有版本号的 JAR 文件
  • 在 JAR 文件中找到一个类
  • 获取项目的 OSGi 状态
  • 删除列入黑名单的 API 使用
于 2009-06-09T19:59:50.183 回答
3

我相信会做你想做的一个工具是理解。它不是免费的,但您可以在投入任何资金之前下载免费试用版。

于 2009-06-09T19:48:05.917 回答
3

看看依赖查找器

于 2009-06-10T03:02:18.770 回答
3

Structure101能够可视化 Jboss 5 中的类和方法 JAR 级别的依赖关系。

请参阅下面的屏幕截图或查看大图。

替代文字

于 2009-07-22T17:10:10.720 回答
2

我不确定是否有(n Eclipse)类路径分析工具。MattK提到的理解
可能会有所帮助。

在此处引用的所有静态代码分析工具中,我最接近的是JarAnalyzer(虽然没有图表),它能够检测jar 之间的“物理依赖关系”。

于 2009-06-09T19:58:39.373 回答
2

听起来像是Degraph的用例。它分析了一堆类文件和 jar,并可视化了依赖关系。

使它适合您的用例(我认为)的原因是可以定义要捆绑在一起的任意类组。因此,您可以重现您的 jar 结构,查看依赖关系,尤其是循环依赖关系。

您可以展开组以查看其包含的类或折叠它们以简化视图。

要快速了解可能的情况,请查看Degraph 示例

Log4j 的示例:

Log4J 依赖项

于 2013-03-26T14:09:28.817 回答
2

JDeps已经包含在 JDK 中,并显示了 JAR 依赖项。例如:

jdeps -R -cp "my\jar\dir\*;my\other\jar\dir\*" my\classes\dir
于 2015-11-25T13:21:40.567 回答
1

查看类依赖分析器 (CDA): http: //www.dependency-analyzer.org/

我发现它对整理罐子非常有用。

于 2012-10-28T14:09:15.940 回答
0

为了记录(以及改进这个知识库),我发现 Shrimp 非常有帮助: http ://www.thechiselgroup.org/shrimp

虾可视化

此外,为了方便检查依赖,Byecycle 值得一试,但似乎不再更新: Byecycle

这两个工具还提供 Eclipse 集成。

于 2010-09-09T15:06:25.910 回答