2009-06-09 42 views
9

我目前正在重构一个大的Java应用程序。我将中央(Eclipse)项目中的一个划分为大约30个单独的“组件”,但它们依然严重相互依赖。为了更好地了解什么取决于我所寻找的某种方式来绘制编译时依赖关系。如何可视化jar(不是插件)依赖关系?

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

后来我会再深入一点,但是现在这意味着我无法看到所有树木的森林。

回答

3

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

请参见下面的屏幕截图或view it larger.

alt text

+1

图片链接已死 – 2017-09-07 09:18:15

+1

链接已修复,谢谢旗下的Andrius。 – 2017-11-03 10:55:56

3

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

8

结帐JBoss Tattletale。它可能不是你所要求的,但值得一试。尽管如此,它还是比较新的。

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

  • 确定JAR文件之间的依赖关系
  • 查找类路径
  • 现货缺少类,如果一类位于多个JAR文件
  • 如果同一个JAR文件位于多个位置,则为现场
  • 列出每个JAR文件要求并提供的内容
  • 验证类
  • 的serialVersionUID的查找有不同的版本号
  • 查找JAR文件没有版本号
  • 类似的JAR文件中找到一类在JAR文件
  • 获取项目的OSGi的状态
  • 删除黑名单API使用
0

备案(和提高这方面的知识基础),我发现虾非常有帮助: http://www.thechiselgroup.org/shrimp

Shrimp-Visualization

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

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

+0

虾项目页面说它重试。 Byecycle链接已损坏。 – s10z 2017-03-21 12:33:58

1

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

什么使它适合你的用例(我认为)是定义任意类的组合的可能性。所以你可以重现你的jar结构,看到依赖关系,尤其是循环依赖关系。

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

想要快速的印象什么是可能的,看看Degraph Examples

为Log4j的

实施例:

Log4J dependencies

2

JDeps已经包含在JDK,并且示出JAR依赖性。例如:

jdeps -R -cp "my\jar\dir\*;my\other\jar\dir\*" my\classes\dir