如何可视化jar(而不是插件)依赖项?

时间:2009-06-09 19:36:24

标签: java eclipse graph dependencies visualization

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

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

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

9 个答案:

答案 0 :(得分:8)

结帐JBoss Tattletale。它可能没有你要求的所有,但值得一试。但它仍然相对较新。

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

  • 识别JAR文件之间的依赖关系
  • 从类路径中查找缺少的类
  • 如果一个类位于多个JAR文件中,则发现
  • 如果相同的JAR文件位于多个位置,则发现
  • 列出每个JAR文件所需的内容并提供
  • 验证类的SerialVersionUID
  • 查找具有不同版本号的类似JAR文件
  • 查找没有版本号
  • 的JAR文件
  • 在JAR文件中找到一个类
  • 获取项目的OSGi状态
  • 删除黑名单的API使用

答案 1 :(得分:3)

我认为可以做你想做的工具是Understand。它不是免费的,但您可以在投入任何资金之前下载免费试用版。

答案 2 :(得分:3)

答案 3 :(得分:3)

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

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

alt text

答案 4 :(得分:2)

我不确定是否有(n个Eclipse)类路径分析工具 可能会理解mentioned by MattK可以提供帮助。

我会在所有static code analysis tool referenced here中选择最接近的JarAnalyzer(尽管没有图表),能够在罐子中检测到“Physical dependencies”。

答案 5 :(得分:2)

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

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

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

为了快速展示可能性,请查看Degraph Examples

Log4j的示例:

Log4J dependencies

答案 6 :(得分:2)

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

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

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

Shrimp-Visualization

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

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