blob: 3f4ab564f4ebc43a3bfef93f9a98898bf49f06c7 [file] [log] [blame]
<?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>