A cyclical dependency between two or
more modules in an enterprise application most commonly occurs when projects
are imported from outside the Workbench.
When a cycle exists between two or more modules in an enterprise application,
the Java™ builder
cannot accurately compute the build order of the projects. Full builds fail
under these conditions, or require several invocations.
Therefore, the best practice is to componentize your projects or modules.
This allows you to have your module dependencies function as a tree instead
of a cycle diagram. This practice has the added benefit of producing a better
factored and layered application.