All my programming life I have been thinking that the cyclic dependency is the following:
GIVEN
- package1
- package2
- subpackage2
- package3
IF
- Class from package1 references class from package2
- Class from package2 references class from package3
- Class from package3 references class from package1
THEN
Project contains cyclic dependency package1 > package2 > package3 > package1.
This was a pretty huge surprise when Intellij's dependency viewer told me, that:
IF
- Class from package1 references class from package2
- Class from subpackage2 references class from package3
- Class from package3 references class from package1
THEN
Project contains cyclic dependency package1 > package2 > package3 > package1.
Could anybody, please, explain me what is the strict definition for cyclic dependency and why does Intellij show such weird results? Thanks.