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

时间:2016-02-26 14:01:47

标签: java intellij-idea dependencies

我所有的编程生涯我一直在想循环依赖如下:
GIVEN

  • package1
  • 包2
    • subpackage2
  • package3

IF

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

    ,然后
    项目包含循环依赖包1> package2> package3>包1。

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

    IF

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

      ,然后
      项目包含循环依赖包1> package2> package3>包1。

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

1 个答案:

答案 0 :(得分:4)

依赖关系是传递性的,因此依赖于subpackage2,而subpackage2依赖于package3,package2本身依赖于package3,因此形成了与示例1完全相同的图形。我对其他工具感到惊讶不要将其视为一个圆圈,因为IntelliJ在这里是正确的。