Closed. 此问题正在寻求书籍、工具、软件库等的推荐。不满足堆栈溢出指南 /help/closed-questions 。目前不接受答案。
您推荐什么工具来检测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(使用前将#替换为@)