Intellij依赖查看器和包循环依赖

mr.*_*ing 6 java dependencies intellij-idea

在我的编程生涯中,我一直认为循环依赖如下:
GIVEN

  • 包1
  • 包装2
    • subpackage2
  • 包装3

如果

  1. package1中的类引用package2中的类
  2. package2中的类引用package3中的类
  3. package3中的类引用package1中的类

那么
Project包含循环依赖包package1> package2> package3> package1.

当Intellij的依赖观察者告诉我时,这是一个非常大的惊喜:

如果

  1. package1中的类引用package2中的类
  2. subpackage2中的类引用package3中的类
  3. package3中的类引用package1中的类

那么
Project包含循环依赖包package1> package2> package3> package1.

请问任何人,解释一下循环依赖的严格定义是什么?为什么Intellij会显示如此奇怪的结果?谢谢.

kaq*_*qao 5

依赖关系是可传递的,因此,由于依赖于 subpackage2,而 subpackage2 又依赖于 package3,package2 本身依赖于 package3,从而形成与示例 1 完全相同的图形。更令我惊讶的是其他工具没有将其视为一个圆圈,因为 IntelliJ 在这里是正确的。