Java包循环检测:如何找到涉及的具体类? [关闭]

2023-12-26

您推荐什么工具来检测Java包循环依赖, 知道目标是明确列出检测到的“跨包循环”中涉及的特定类?

我知道关于经典 http://classycle.sourceforge.net/ and JDepend http://clarkware.com/software/JDepend.html,但它们都未能列出循环包依赖项中涉及的类。Metrics http://metrics.sourceforge.net/有一个有趣的循环图形表示,但它再次仅限于包,并且有时很难阅读。

我厌倦了得到:

“这 3 个包之间存在包循环依赖关系
你们每个班都有 xxx 门课
祝你好运找到合适的课程并打破这个循环”

您是否知道有什么工具可以采取额外的步骤来实际向您解释为什么检测到循环(即“列出涉及的类”)?


好了……公布结果的时间到了:

@l7010.de:感谢您的努力。我会投票给你(当我有足够的代表时),特别是对于“CAP”答案......但 CAP 已经死在水中,不再与我的 Eclipse 3.4 兼容。其余的是商业软件,我只寻找免费软件。

@daniel6651:谢谢,但是,正如所说,仅限免费软件(抱歉一开始没有提到它)。

@izb 作为 findbugs 的频繁用户(现在使用最新的 1.3.5),我只需点击一下即可接受您的答案...如果您能向我解释一下激活 findbug 来检测任何周期的选项。仅提及该功能0.8.7版本顺便 http://findbugs.sourceforge.net/Changes.html(寻找 '用于查找类之间循环依赖关系的新型检测器'),我无法测试它。 更新:它现在可以工作了,我有一个旧的 findbugs 配置文件,其中该选项未激活。我还是喜欢CAD https://stackoverflow.com/questions/62276/java-package-cycle-detection-how-to-find-the-specific-classes-involved#71610尽管 ;)

答案是……看下面是我自己的(第二个)答案 https://stackoverflow.com/questions/62276/java-package-cycle-detection-how-to-find-the-specific-classes-involved#71610


嗯...测试后上面介绍的 DepFinder https://stackoverflow.com/questions/62276/java-package-cycle-detection-how-to-find-the-specific-classes-involved#66059,事实证明它对于快速检测简单的依赖关系非常有用,但它不能很好地随着类的数量而扩展......

所以真正的实际答案是:CDA - 类依赖分析器 http://www.dependency-analyzer.org/

它速度快、最新、易于使用,并提供类及其循环依赖关系的图形表示。梦想成真 ;)

You have to create a workset in which you enter only the directory of your classes (.class) (no need to have a complete classpath)
The option "Detect circular dependencies - ALT-C" works as advertise and does not take 100% of the CPU for hours to analyze my 468 classes.
Note: to refresh a workspace, you need to open it again(!), in order to trigger a new scan of your classes.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java包循环检测:如何找到涉及的具体类? [关闭] 的相关文章

随机推荐

  • 如何在 Neo4j 中有效地创建独特的关系?

    跟进我的问题here https stackoverflow com questions 29873015 create on not match command for neo4js cql noredirect 1 comment486
  • keras.argmax中axis=-1的含义是什么?

    我是 Keras 的初学者 需要帮助才能理解keras argmax a axis 1 and keras max a axis 1 是什么意思axis 1 when a shape 19 19 5 80 以及输出是什么keras argm
  • JavaScript 中循环 2 个数组无法正常工作

    我有以下 JavaScript 代码 据我所知 该代码应该仅输出一次日期和相应的计算值 但是由于某种原因 我看到内部的输出不正确parseData日期记录两次并且值被覆盖的函数 我不确定是什么导致了这里的问题 这是可以使用 node js
  • 是否可以在 JavaScript 中实现动态 getter/setter?

    我知道如何为名称已知的属性创建 getter 和 setter 方法如下 A trivial example function MyObject val this count 0 this value val MyObject protot
  • 使用 SheetJS 将包含合并单元格的 .xlsx 文件转换为 JSON

    我正在尝试使用 SheetJS 读取 xlsx 文件并将其转换为 JSON 我能够读取简单的 没有合并单元格 xlsx 文件并将其转换为 JSON 但我无法正确处理合并单元格 问题是我有一个 xlsx 文件 其中包含不同语言的产品 我尝试在
  • MVC 嵌套视图和部分视图

    我正在使用 MVC 3 创建原型项目 我遇到了一种情况 我似乎无法找到答案 而且似乎我可能以错误的方式处理问题 我的项目的快速概述 它基于您通过 Visual Studio 获得的 MVC 模板 我使用提供的 Layout 视图上的链接 选
  • 使用 AMD 和 webpack 在浏览器中拉入 sinon 子模块

    我遇到了中描述的相同问题这个问题 https stackoverflow com questions 20570301 typeerror undefined is not a function evaluating sinon spy 基
  • 将方法传递给整个对象,还是传递该对象的属性,哪个性能更高?

    考虑以下示例 我需要检查 CouponModel 是否有唯一的序列号 我有两个选择 CouponModel model GetFromSomewhere if CouponHasUniqueKey model or if CouponHas
  • 如何判断Dart列表是否是固定列表?

    如何在运行时确定 Dart 中的列表是否是 固定列表 在 Dart 中 至少 有三种创建固定长度列表的方法 var fixed new List 5 fixed at five elements var alsoFixed new List
  • 在 WPF 中打开模式对话框时主窗口呈灰色

    当从主窗口打开模式对话框时 我想用灰色覆盖主窗口 WPF中有没有标准的解决方案来模拟这种效果 这里有一个例子 没有内置的功能 但它应该很容易实现 在主窗口中 您需要在顶层有一个没有定义的列或行的网格 因此它只是一个占据所有客户区域的单元格
  • 在文本字符串中查找特定术语并在上一列中返回该术语

    由于某种原因 我无法弄清楚第一个返回是否有效 但是当我向下拖动时 其他结果返回为 VALUE IF FIND Drummondville B3 gt 0 Drummondville IF FIND Saint Germain de gran
  • 检查设备是否可以使用 Cordova 解码视频

    我在用着VR view https developers google com vr concepts vrview在我的 Ionic Cordova 应用程序中 VR view 的文档指出 某些较旧的设备无法解码大于 1080p 1920
  • 设置 RStudio Portable 默认 R 版本

    我最近发现了 R 和 RStudio 的便携式版本 http rportable sourceforge net http rportable sourceforge net 开源岩石 无论如何 我在大学里从一台电脑跳到另一台电脑 我想让
  • 如何以 Rails 形式链接下拉菜单

    如何在 Rails 页面上链接下拉菜单 两个下拉列表都来自数据库 例如 如果第一个下拉列表是category 即将形成category桌子 第二次下降 products 也来自数据库 将根据第一个下拉菜单的选择进行填充 您可以使用 coll
  • SQL Server 中有类似“生存时间”的选项吗?

    SQL Server 中有类似 生存时间 的选项吗 最近我了解了Scylla DB中的Time to Live 我想知道跨数据库尤其是 SQL Server 是否可以使用相同的选项 我在 Internet 上搜索过 但找不到 SQL Ser
  • SQL对多个表建立索引,可以做到吗?

    一直在寻找解决方案一段时间了 转到 1 或 2 跳过描述 首先我会解释一下情况 我公司已经升级了我们的 erp 系统 我的主要工作是创建公司其他人使用的列表 我从该系统数据库中获取所有数据 在升级过程中 我们转换了一些数据以匹配新版本 其中
  • 什么是 MySQL 外键?

    在 Stack Overflow 的一个回答中 我看到了这段代码 CREATE TABLE Favorites user id INT NOT NULL movie id INT NOT NULL PRIMARY KEY user id m
  • Sql - SELECT 行,直到行的总和达到某个值

    我在这里看到了其他类似的问题 但它们并不能完全满足我的需求 至少我是这么认为的 我有一个包含以下列的 receipts 表 收据 客户ID 数量 让我们说 我有 5 张来自客户 1 的未付款收据 reciept id 1 Ammount 1
  • 如何链接到 boost date_time

    Example 我有一个 Rcpp 函数 我想调用它boost posix time time from string 我从以下位置获取了示例代码增强文档 https www boost org doc libs 1 65 0 doc ht
  • Java包循环检测:如何找到涉及的具体类? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您推荐什么工具来检测Java包循环依赖 知道目标是明确列出检测到的 跨包循环 中涉及的特定类 我知道关于