<?xml version="1.0" encoding="utf-8"?> | |
<!--Arbortext, Inc., 1988-2006, v.4002--> | |
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" | |
"concept.dtd"> | |
<concept id="cjcircle" xml:lang="en-us"> | |
<title outputclass="id_title">Cyclical dependencies between Java EE modules</title> | |
<shortdesc outputclass="id_shortdesc">A cyclical dependency between two or | |
more modules in an enterprise application most commonly occurs when projects | |
are imported from outside the Workbench.</shortdesc> | |
<prolog><metadata> | |
<keywords><indexterm>dependencies<indexterm>cycles between modules</indexterm></indexterm> | |
<indexterm>Java EE<indexterm>cyclical dependencies between modules</indexterm></indexterm> | |
<indexterm>projects<indexterm>cyclical dependencies</indexterm></indexterm> | |
</keywords> | |
</metadata></prolog> | |
<conbody outputclass="id_conbody"> | |
<p outputclass="anchor_topictop"></p> | |
<p>When a cycle exists between two or more modules in an enterprise application, | |
the <tm tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> builder | |
cannot accurately compute the build order of the projects. Full builds fail | |
under these conditions, or require several invocations.</p> | |
<p>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.</p> | |
<p outputclass="anchor_topicbottom"></p> | |
</conbody> | |
</concept> |