 
                            Both the The Elements of Java™ Style [Rogue 2000] and the JPL Java Coding Standard [Havelund 2010] require that the dependency structure of a package must never contain cycles; that is, it must be representable as a directed acyclic graph (DAG).
...
Cyclic dependencies between packages can result in fragile builds. A security vulnerability in a package can easily percolate to other packages.
Bibliography
| [Havelund 2010] | JPL Coding Standard, Version 1.1 | 
| §1.2.5, "Acyclic Dependencies Principle" | |
| Chapter 1, "OO Principles and Patterns" | |
| [Rogue 2000] | The Elements of Java Style | 
...