<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/02/the-three-child-projects.html" />
  <link rel="self" type="application/atom+xml" href="http://www.insideria.com/atom.xml" />
  <id>tag:www.insideria.com,2009://34/tag:www.insideria.com,2008://34.22861-</id>
  <updated>2009-11-16T15:55:10Z</updated>
  <title>Comments for Anatomy of an Enterprise Flex RIA Part 4: The Three Child Projects (http://www.insideria.com/2008/02/the-three-child-projects.html)</title>
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.21-en</generator>
  <entry>
    <id>tag:www.insideria.com,2008://34.22861</id>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/02/the-three-child-projects.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.oreilly.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=34/entry_id=22861" title="Anatomy of an Enterprise Flex RIA Part 4: The Three Child Projects" />
    <published>2008-02-08T17:48:48Z</published>
    <updated>2008-10-01T01:35:45Z</updated>
    <title>Anatomy of an Enterprise Flex RIA Part 4: The Three Child Projects</title>
    <summary>In the last installment of our Development Series Anatomy of an Enterprise Flex RIA, we looked at how we organized our project and described it with Maven. Now we&apos;ll continue looking at the project&apos;s structure, with an in-depth look at the three child projects for the purpose of learning more about project dependencies.  Check it out! 

</summary>
    <author>
      <name>Tony Hillerson</name>
      
    </author>
    
    <category term="Features" />
    
    <content type="html" xml:lang="en" xml:base="http://www.insideria.com/">
      <![CDATA[<div class="ap_r" style="margin: 16px;"><a href="http://www.insideria.com/upload/2008/02/the_three_child_projects/riaseries_part4.jpg" class="highslide" onclick="return hs.expand(this)"><img src="http://www.insideria.com/upload/2008/02/the_three_child_projects/riaseries_part4.jpg" alt="riaseries_part4.jpg" title="Click to enlarge" width="148"/></a></div>

<p><br />
<a href="http://www.insideria.com/2008/02/the-project-structure.html">Last installment</a> we started looking at how we organized our J2EE project structure and described it with Maven. Now we'll continue looking at the project's structure.</p>

<p>One of the locations that Maven expects to find in a project is the directory where the source of the project goes. This is defaulted to <span class="yellowinlinecode"><em>src</em></span>. The <span class="yellowinlinecode"><em>src</em></span> folder should go in the root of the project alongside the <span class="yellowinlinecode"><em>pom.xml</em></span>.</p>

<div class="ap_r" style="width:180px;"><a href="http://www.oreilly.com/catalog/9780596514402/?CMP=ILC-dm_nav_related-books" target="_blank"><img border="0" src="http://www.oreilly.com/catalog/covers/9780596514402_cat.gif" width="180" height="233" /></a>
<div class="apcaption"><a href="http://www.oreilly.com/catalog/9780596514402/?CMP=ILC-dm_nav_related-books" target="_blank">Get your copy of Tony Hillerson's Enterprise Application Development with Flex.</a></div></div>Inside <span class="yellowinlinecode"><em>src</em></span> is a directory for the main source of the project, called <span class="yellowinlinecode"><em>main</em></span>. At the same level is a folder for test code, called <span class="yellowinlinecode"><em>test</em></span>. The code goes in the <span class="yellowinlinecode"><em>main</em></span> and <span class="yellowinlinecode"><em>test</em></span> directories and is organized by the type of language&#8212;in this case, a <span class="yellowinlinecode"><em>java</em></span> directory holds the Java code in the data project directory, and a <span class="yellowinlinecode"><em>java</em></span> and <span class="yellowinlinecode"><em>flex</em></span> directory in the web project.  

<p><br />
At that level in the data project will also be an <span class="yellowinlinecode"><em>src/main/resources</em></span> directory to contain any configuration files or artifacts that need to be packaged along with the build, and an <span class="yellowinlinecode"><em>src/test/resources</em></span> directory for anything needing inclusion during the test phase of the build. Anything included from these directories will be in the root of the classpath at these phases.</p>

<p><br />
In the web project, we&#8217;ll have a directory called <span class="yellowinlinecode"><em>bookie.war</em></span> to hold the contents of the WAR archive that aren&#8217;t compiled, like the java and flex will be. As I mentioned, web archive files have a specified structure with certain files that need to be included in certain places. There should be a <span class="yellowinlinecode"><em>WEB-INF</em></span> directory in the root which contains a file named <span class="redinlinecode"><em>web.xml</em></span>, which describes the deployment of the archive. All the compiled Java files go in a directory called <span class="yellowinlinecode"><em>classes</em></span> in <span class="yellowinlinecode"><em>WEB-INF</em></span>, and any Java libraries go in a directory called <span class="yellowinlinecode"><em>lib</em></span>. Maven will create these directories later. Anything we want to be in the root of the WAR, we can put in this <span class="yellowinlinecode"><em>bookie.war</em></span> directory.</p>

<p><br />
The web archive, when deployed, will contain the compiled Flex application. It&#8217;s also where the code for LCDS goes. Inside the <span class="yellowinlinecode"><em>bookie.war</em></span> directory, in the <span class="yellowinlinecode"><em>WEB-INF</em></span> directory, you&#8217;ll find a directory called <span class="yellowinlinecode"><em>flex</em></span>. This contains all the resources needed to run LCDS. </p>

<p><br />
Another important directory is <span class="yellowinlinecode"><em>src/main/data</em></span>, which is in the data project and stores the descriptions of the database schema and the test data we&#8217;ll want in the database during automated Java tests. This is a non-standard directory, but it makes sense to put these resources here. One more non-standard directory is a <span class="yellowinlinecode"><em>server-config</em></span> directory to store&#8212;you guessed it&#8212;server configuration information. Let&#8217;s organize this by server, so we&#8217;ll have a <span class="yellowinlinecode"><em>jboss</em></span> directory for the server configuration for our target server environment.</p>

<p><br />
I say these directories are non-standard because they aren&#8217;t specified by Maven, but the configuration files in there don&#8217;t belong in, say, the standard &#8220;resources&#8221; directory because we don&#8217;t want them included in the JAR or WAR. I supposed I could have put them somewhere like <span class="yellowinlinecode"><em>src/server-config</em></span>, but I went with <span class="yellowinlinecode"><em>server-config</em></span> off the root of the project to make it explicit.</p>

<p><br />
The project to combine the persistence unit, the &#8220;data&#8221; project, and the user interface &#8220;ui&#8221; project into an <span class="yellowinlinecode"><em>.ear</em></span> is called <span class="redinlinecode">bookie-ear</span>. We&#8217;ll have a separate <span class="yellowinlinecode"><em>pom.xml</em></span> there to control how Maven builds the enterprise application.</p>

<div class="acode">
  <span class="green">&lt;?</span><span class="purple">xml</span> <span class="blue">version=&quot;1.0&quot; encoding=&quot;UTF-8</span><span class="green">&quot;?&gt;</span><br />
  <span class="green">&lt;</span><span class="purple">project ...</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">modelVersion</span><span class="green">&gt;4.0.0&lt;/</span><span class="purple">modelVersion</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">parent</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">artifactId</span><span class="green">&gt;bookieProject&lt;/</span><span class="purple">artifactId</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">groupId</span><span class="green">&gt;lcds.examples.bookie&lt;/</span><span class="purple">groupId</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">version</span><span class="green">&gt;1.0-SNAPSHOT&lt;/</span><span class="purple">version</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;/</span><span class="purple">parent</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">groupId</span><span class="green">&gt;lcds.examples.bookie&lt;/</span><span class="purple">groupId</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">version</span><span class="green">&gt;1.0-SNAPSHOT&lt;/</span><span class="purple">version</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">artifactId</span><span class="green">&gt;bookie-ear&lt;/</span><span class="purple">artifactId</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">packaging</span><span class="green">&gt;ear&lt;/</span><span class="purple">packaging</span><span class="green">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="green">&lt;</span><span class="purple">name</span><span class="green">&gt;Bookie Example EAR Project&lt;/</span><span class="purple">name</span><span class="green">&gt</span>;
</div>

<p>This part of the POM looks a lot like the parent POM. First the POM references the parent project in the &#8220;parent&#8221; tags to let Maven know that this project doesn&#8217;t stand alone. Just like anywhere else, projects are identified by <span class="redinlinecode">artifactId</span>, <span class="redinlinecode">groupId</span>, and <span class="redinlinecode">version</span>. Here are the <span class="yellowinlinecode"><em>.ear</em></span> project&#8217;s settings for those attributes:</p>

<p><br />
<div class="acode"><span class="blue">&lt;</span><span class="green">build</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">finalName</span><span class="blue">&gt;</span><span class="green">bookie</span><span class="blue">&lt;/</span><span class="green">finalName</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">plugins</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">plugin</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">groupId</span><span class="blue">&gt;</span><span class="green">org.apache.maven.plugins</span><span class="blue">&lt;/</span><span class="green">groupId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">artifactId</span><span class="blue">&gt;</span><span class="green">maven-ear-plugin</span><span class="blue">&lt;/</span><span class="green">artifactId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">version</span><span class="blue">&gt;</span><span class="green">2.3</span><span class="blue">&lt;/</span><span class="green">version</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">configuration</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">modules</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">jarModule</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">groupId</span><span class="blue">&gt;</span><span class="green">lcds.examples.bookie</span><span class="blue">&lt;/</span><span class="green">groupId</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">artifactId</span><span class="blue">&gt;</span><span class="green">bookie-data</span><span class="blue">&lt;/</span><span class="green">artifactId</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="green">bundleDir</span><span class="blue">&gt;/</span><span class="blue">&lt;/</span><span class="green">bundleDir</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;<span class="blue">&lt;</span><span class="green">includeInApplicationXml</span><span class="blue">&gt;</span><span class="green">true</span><span class="blue">&lt;/</span><span class="green">includeInApplicationXml</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">jarModule</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">webModule</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">groupId</span><span class="blue">&gt;</span><span class="green">lcds.examples.bookie</span><span class="blue">&lt;/</span><span class="purple">groupId</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">artifactId</span><span class="blue">&gt;</span><span class="green">bookie-ui</span><span class="blue">&lt;/</span><span class="purple">artifactId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="blue">&lt;</span><span class="purple">contextRoot</span><span class="blue">&gt;</span><span class="green">/bookie</span><span class="blue">&lt;/</span><span class="purple">contextRoot</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">unpack</span><span class="blue">&gt;</span><span class="green">true</span><span class="blue">&lt;/</span><span class="purple">unpack</span><span class="blue">&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">webModule</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">modules</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">configuration</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">plugin</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">plugins</span><span class="blue">&gt;</span><br />
  <span class="blue">&lt;/</span><span class="purple">build</span><span class="blue">&gt;</span> <br />
</div></p>

<p>Next, the build section tells Maven that the final name of the artifact should be &#8220;bookie&#8221; instead of the more cumbersome version containing the &#8220;1.0-SNAPSHOT&#8221;. Then we configure the EAR plug-in, the thing that builds EAR files, to tell it we want the bookie data project put in the root of the EAR and included in the generated <span class="yellowinlinecode"><em>application.xml</em></span> file.</p>

<p>Also, we tell Maven that we want to include the web app project, <span class="redinlinecode">bookie-ui</span> as a web archive, that the <span class="redinlinecode">contextRoot</span> should be <span class="redinlinecode">/bookie</span>, and that we want the WAR unpacked or &#8220;exploded.&#8221; You can change that setting once you get ready for deployment, but I don&#8217;t know of any easy way to automate the process of choosing which environment you&#8217;re in, and whether to unpack in that environment.</p>

<p><br />
<div class="acode">&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">dependencies</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">dependency</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">groupId</span><span class="blue">&gt;</span><span class="green">lcds.examples.bookie</span><span class="blue">&lt;/</span><span class="purple">groupId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">artifactId</span><span class="blue">&gt;</span><span class="green">bookie-data</span><span class="blue">&lt;/</span><span class="purple">artifactId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">version</span><span class="blue">&gt;</span><span class="green">1.0-SNAPSHOT</span><span class="blue">&lt;/</span><span class="purple">version</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">dependency</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">dependency</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">groupId</span><span class="blue">&gt;</span><span class="green">lcds.examples.bookie</span><span class="blue">&lt;/</span><span class="purple">groupId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">artifactId</span><span class="blue">&gt;</span><span class="green">bookie-ui</span><span class="blue">&lt;/</span><span class="purple">artifactId</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">type</span><span class="blue">&gt;</span><span class="green">war</span><span class="blue">&lt;/</span><span class="purple">type</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;</span><span class="purple">version</span><span class="blue">&gt;</span><span class="green">1.0-SNAPSHOT</span><span class="blue">&lt;/</span><span class="purple">version</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">dependency</span><span class="blue">&gt;</span><br />
  &nbsp;&nbsp;&nbsp; <span class="blue">&lt;/</span><span class="purple">dependencies</span><span class="blue">&gt;</span><br />
  <span class="blue">&lt;/</span><span class="purple">project</span><span class="blue">&gt;</span> <br />
</div></p>

<p>This next section tells Maven on which other projects this project depends. This is what starts all that dependency management magic I talked about before. The EAR project is just there to get our JAR and WAR together in one place for easy deployment, so it only has those projects as dependencies.</p>

<p><a href="http://www.insideria.com/2008/02/anatomy-of-an-enterprise-flex-1.html">Next in the series</a> we'll have a look at the Maven project lifecycle. You can always find the entire series <a href="http://www.insideria.com/series-anatomy-flex.html">here</a>.<br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.22861-comment:2015077</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.22861" type="text/html" href="http://www.insideria.com/2008/02/the-three-child-projects.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/02/the-three-child-projects.html#comment-2015077" />
    <title>Comment from Driveby on 2008-02-12</title>
    <author>
        <name>Driveby</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Another great article, thanks, Tony! Looking forward to the next one...</p>]]>
    </content>
    <published>2008-02-12T16:11:25Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.22861-comment:2015741</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.22861" type="text/html" href="http://www.insideria.com/2008/02/the-three-child-projects.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/02/the-three-child-projects.html#comment-2015741" />
    <title>Comment from Fauxsigner on 2008-03-08</title>
    <author>
        <name>Fauxsigner</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Can we get these more than just on Mondays?  </p>]]>
    </content>
    <published>2008-03-08T14:30:59Z</published>
  </entry>

</feed
