- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
你会推荐什么工具来检测Java包循环依赖,知道目标是明确列出检测到的“跨包循环”中涉及的特定类?
我知道 classycle和 JDepend ,但它们都未能列出循环包依赖项中涉及的类。 Metrics有一个有趣的循环图形表示,但它又仅限于包,有时很难阅读。
我已经厌倦了:
" you have a package cycle dependency between those 3 packages
you have xxx classes in each
good luck finding the right classes and break this cycle "
您是否知道任何工具会采取额外步骤来实际向您解释为什么检测到循环(即“列出所涉及的类”)?
Riiight...是时候宣布结果了:
@l7010.de:感谢您的努力。我会投票给你(当我有足够的代表时),特别是对于'CAP'的答案......但是CAP已经死在水中并且不再与我的Eclipse 3.4兼容。其余的都是商业的,我只寻找免费软件。
@daniel6651:谢谢,但如前所述,仅限免费软件(很抱歉一开始没有提及)。
@izb 作为 findbugs 的频繁用户(现在使用最新的 1.3.5),我只需单击一下即可接受您的回答...如果您能向我解释一下有什么选项可以激活 findbug 来检测任何周期。该功能仅在 0.8.7 version in passing 中提及。 (寻找“新样式检测器以查找类之间的循环依赖”),我无法对其进行测试。更新:它现在可以工作了,我有一个旧的 findbugs 配置文件,其中没有激活该选项。我还是喜欢CAD虽然;)
答案是……见 my own (second) answer below
最佳答案
嗯...经过测试DepFinder presented above ,事实证明它非常适合快速检测简单的依赖关系,但它不能很好地随着类的数量而扩展......
所以真正的实际答案是: CDA - Class Dependency Analyzer
它快速、最新、易于使用,并提供类及其循环依赖关系的图形表示。梦想成真;)
你必须创建一个工作集,在其中你只输入你的类的目录(.class)(不需要有一个完整的类路径)
选项“检测循环依赖项 - ALT-C”就像广告一样工作,并且不会在数小时内占用 100% 的 CPU 来分析我的 468 个类。
注意:要刷新工作区,您需要再次打开它(!),以触发对您的类的新扫描。
关于Java包周期检测: how do I find the specific classes involved?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62276/
我是一名优秀的程序员,十分优秀!