You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by ka...@apache.org on 2002/03/02 21:35:37 UTC

cvs commit: jakarta-turbine-maven/xdocs project-descriptor.xml project.xml

kaz         02/03/02 12:35:37

  Modified:    xdocs    project.xml
  Added:       xdocs    project-descriptor.xml
  Log:
  - Added a first draft of the Maven project descriptor reference
    (similiar format to the database schema reference of Torque), also
    included is a sample project descriptor.
  
  - Added links to the new project descriptor document and the getting
    started document that Jason checked in earlier.
  
  Revision  Changes    Path
  1.15      +2 -0      jakarta-turbine-maven/xdocs/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/xdocs/project.xml,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- project.xml	26 Feb 2002 07:41:05 -0000	1.14
  +++ project.xml	2 Mar 2002 20:35:37 -0000	1.15
  @@ -14,6 +14,8 @@
         <item name="Mail Lists"              href="/mail-lists.html"/>
       </menu>
       <menu name="Documentation">
  +      <item name="Getting Started"         href="/getting-started.html"/>
  +      <item name="Project Descriptor"      href="/project-descriptor.html"/>
         <item name="Build File"              href="/build-file.html"/>
         <item name="Directory Layout"        href="/dirlayout.html"/>
         <item name="JRCS"                    href="/jrcs.html"/>
  
  
  
  1.1                  jakarta-turbine-maven/xdocs/project-descriptor.xml
  
  Index: project-descriptor.xml
  ===================================================================
  <?xml version="1.0"?>
  <document>
  
    <properties>
      <author email="pete@kazmier.com">Pete Kazmier</author>
      <title>Maven Project Descriptors</title>
    </properties>
  
    <body>
      <section name="Maven Project Descriptors">
        <p>
          Maven utilizes an XML project descriptor to generate an object
          model for a project.  This object model can then be manipulated
          using an interface to the core of Maven.  Currently, the only
          interface provided is via an Ant <a href="build-file.html">build
          file</a>.  In the future, other interfaces may be provided
          such as a CLI or JMX.
        </p>
        <p>
          This document describes the valid XML elements and attributes
          that consist of a Maven project descriptor.  The DTD is
          presented first, followed by a detailed description of each
          element.
        </p>
      </section>
      <section name="DTD">
        <p>
          The following is the DTD that specifies the elements and
          attributes of the Maven project descriptor.
        </p>
        <source><![CDATA[
    [TODO: Insert DTD here]  
        ]]></source>
      </section>
      <section name="Sample Project Descriptor">
        <p>
          The following is the sample project descriptor used to build
          Maven.  For those wondering, yes, Maven's build system is built
          by Maven (we believe in eating our own food :)  Detailed
          information on the elements are provided later in this document.
        </p>
        <source><![CDATA[
  <?xml version="1.0"?>
  <project>
    
    <name>jakarta-turbine-maven</name>
    <id>maven</id>
    <currentVersion>0.1</currentVersion>
    <organization>Apache Software Foundation</organization>
    <inceptionYear>2001</inceptionYear>
    <package>org.apache.maven</package>
  
    <shortDescription>Project Management Tools</shortDescription>
  
    <description>
      Maven: a person who has special knowledge or experience;
      an expert or connoisseur. In short, Maven strives to be
      a Java project expert. The entire concept of Maven is
      based around an object model for a project.
    </description>
  
    <url>http://jakarta.apache.org/turbine/maven/</url>
    <cvsWebUrl>
      http://cvs.apache.org/viewcvs/jakarta-turbine-maven/
    </cvsWebUrl>
    
    <repository id="jakarta"/>
  
    <mailingLists>
      <mailingList>
        <name>Turbine User List</name>
        <subscribe>
          turbine-user-subscribe@jakarta.apache.org
        </subscribe>
        <unsubscribe>
          turbine-user-unsubscribe@jakarta.apache.org
        </unsubscribe>
        <archive>
          http://www.mail-archive.com/turbine-user@jakarta.apache.org/
        </archive>
      </mailingList>
  
      <mailingList>
        <name>Turbine Developer List</name>
        <subscribe>
          mailto:turbine-dev-subscribe@jakarta.apache.org
        </subscribe>
        <unsubscribe>
          mailto:turbine-dev-unsubscribe@jakarta.apache.org
        </unsubscribe>
        <archive>
          http://www.mail-archive.com/turbine-dev@jakarta.apache.org/
        </archive>
      </mailingList>
    </mailingLists>
  
    <developers>
      <developer>
        <name>Juancarlo Anez</name>
        <id>juanco</id>
        <email>jaunco@apache.org</email>
        <organization></organization>
      </developer>
  
      <developer>
        <name>Stephane Bailliez</name>
        <id>sbailliez</id>
        <email>sbailliez@apache.org</email>
        <organization></organization>
      </developer>
  
      <developer>
        <name>Jeff Brekke</name>
        <id>brekke</id>
        <email>brekke@apache.org</email>
        <organization></organization>
      </developer>
  
      <developer>
        <name>Tom Copeland</name>
        <id>tcopeland</id>
        <email>tcopeland@apache.org</email>
        <organization>Realeum</organization>
      </developer>
  
      <developer>
        <name>Pete Kazmier</name>
        <id>kaz</id>
        <email>pete@kazmier.com</email>
        <organization></organization>
      </developer>
  
      <developer>
        <name>Geir Magnusson Jr.</name>
        <id>geirm</id>
        <email>geirm@optonline.net</email>
        <organization>Independent (DVSL Maven)</organization>
      </developer>
  
      <developer>
        <name>Daniel Rall</name>
        <id>dlr</id>
        <email>dlr@finemaltcoding.com</email>
        <organization>CollabNet, Inc.</organization>
      </developer>
  
      <developer>
        <name>Jason van Zyl</name>
        <id>jvanzyl</id>
        <email>jason@zenplex.com</email>
        <organization>Zenplex</organization>
      </developer>
    </developers>
  
    <dependencies>
      <dependency>
        <name>jakarta-turbine-stratum</name>
        <type>required</type>
        <version>0.1</version>
        <jar>stratum-0.1-dev.jar</jar>
      </dependency>
  
      <dependency>
        <name>jakarta-bcel</name>
        <type>required</type>
        <version>5.0</version>
        <jar>bcel.jar</jar>
      </dependency>
  
      <dependency>
        <name>jakarta-log4j</name>
        <type>required</type>
        <version>1.1.3</version>
        <jar>log4j-1.1.3.jar</jar>
      </dependency>
              
      <dependency>
        <name>jakarta-velocity</name>
        <type>required</type>
        <version>1.3-dev</version>
        <jar>velocity-1.3-dev.jar</jar>
      </dependency>
  
      <dependency>
        <name>jakarta-velocity-dvsl</name>
        <type>documentation</type>
        <version>0.40</version>
        <jar>velocity-dvsl-0.40.jar</jar>
      </dependency>
  
      <dependency>
        <name>dom4j</name>
        <type>required</type>
        <version>1.1</version>
        <jar>dom4j-1.1.jar</jar>
      </dependency>
  
      <dependency>
        <name>commons-lang</name>
        <type>required</type>
        <version>0.1</version>
        <jar>commons-lang-0.1-dev.jar</jar>
      </dependency>
  
      <dependency>
        <name>commons-io</name>
        <type>required</type>
        <version>0.1</version>
        <jar>commons-io.jar</jar>
      </dependency>
  
      <dependency>
        <name>commons-util</name>
        <type>required</type>
        <version>0.1</version>
        <jar>commons-util-1.0-rc2-dev.jar</jar>
      </dependency>
  
      <dependency>
        <name>commons-graph</name>
        <type>required</type>
        <version>0.1</version>
        <jar>commons-graph.jar</jar>
      </dependency>
  
      <dependency>
        <name>commons-beanutils</name>
        <type>required</type>
        <version>1.0</version>
        <jar>commons-beanutils.jar</jar>
      </dependency>
  
      <dependency>
        <name>commons-collections</name>
        <type>required</type>
        <version>1.0</version>
        <jar>commons-collections.jar</jar>
      </dependency>
  
      <dependency>
        <name>jakarta-oro</name>
        <type>required</type>
        <version>1.3</version>
        <jar>oro.jar</jar>
      </dependency>
  
      <dependency>
        <name>jdepend</name>
        <type>required</type>
        <version>2.2</version>
        <jar>jdepend.jar</jar>
      </dependency>
    </dependencies>
    
    <build>
      <sourceDirectories>
        <sourceDirectory>src/java</sourceDirectory>
      </sourceDirectories>  
  
      <testSourceDirectories>
        <testSourceDirectory>src/java</testSourceDirectory>
        <testSourceDirectory>src/test</testSourceDirectory>
      </testSourceDirectories>  
  
      <aspectSourceDirectories>
      </aspectSourceDirectories>  
  
      <unitTestClassEntries>
        <unitTestClassEntry>
          include = **/*Test*.class
        </unitTestClassEntry>
      </unitTestClassEntries>  
  
      <runtimeTestClassEntries>
      </runtimeTestClassEntries>  
  
      <jarResources>
      </jarResources>
  
      <jars>
      </jars>  
    </build>
  </project>
        ]]></source>
      </section>
      <section name="project">
        <p>
          The <code>&lt;project&gt;</code> element specifies various
          attributes about a project.  This is the root element of the
          project descriptor.  The following table lists all of the
          possible child elements.  Child elements with children are then
          documented further in subsequent sections.
        </p>
        <table>
          <tr><th>Element</th><th>Description</th></tr>
          <tr>
            <td>name</td>
            <td>
              The full name of the project.  This value is used when
              generating <a href="build-file.html#javadocs">JavaDoc</a>
              titles.
            </td>
          </tr>
          <tr>
            <td>id</td>
            <td>
              The short name of the project.  This value is used when
              naming <a href="build-file.html#jar">jars</a> and <a
              href="build-file.html#dist">distribution files</a>.
            </td>
          </tr>
          <tr>
            <td>currentVersion</td>
            <td>
              The current version of the project.  This value is used when
              naming <a href="build-file.html#jar">jars</a> and <a
              href="build-file.html#dist">distribution files</a>.
            </td>
          </tr>
          <tr>
            <td>organization</td>
            <td>
              The organization to which the project belongs.  This value
              is used when generating <a href="build-file.html#javadocs">
              JavaDoc</a> copyright notices.
            </td>
          </tr>
          <tr>
            <td>inceptionYear</td>
            <td>
              The year of the project's inception specified with 4 digits.
              This value is used when generating <a
              href="build-file.html#javadocs">JavaDoc</a> copyright
              notices.
            </td>
          </tr>
          <tr>
            <td>package</td>
            <td>
              The Java package name of the project.  This value is used
              when generating <a
              href="build-file.html#javadocs">JavaDoc</a>. 
            </td>
          </tr>
          <tr>
            <td>shortDescription</td>
            <td>
              A short description of the project.  The short description
              should be limited to a single line.
            </td>
          </tr>
          <tr>
            <td>description</td>
            <td>
              A detailed description of the project.  This element is
              usually specified as CDATA to enable the use of HTML tags
              within the description.  This description is used to
              generate the <a href="build-file.html#docs">front page</a>
              of the site's web site.
            </td>
          </tr>
          <tr>
            <td>url</td>
            <td>
              The URL to the project's homepage. 
            </td>
          </tr>
          <tr>
            <td>cvsWebUrl</td>
            <td>
              The URL to the project's browsable CVS repository
            </td>
          </tr>
          <tr>
            <td>repository</td>
            <td>
              [TODO: element description goes here]
            </td>
          </tr>
          <tr>
            <td><a href="#mailingLists">mailingLists</a></td>
            <td>
              Contains information about a project's mailing lists.  This
              is used to generate the <a href="build-file.html#docs">front
              page</a> of the site's web site.
            </td>
          </tr>
          <tr>
            <td><a href="#developers">developers</a></td>
            <td>
              Describes the contributors to a project.  This is used to
              generate the <a href="build-file.html#docs">front page</a>
              of the site's web site.
            </td>
          </tr>
          <tr>
            <td><a href="#dependencies">dependencies</a></td>
            <td>
              Describes the dependencies to a project.  This is used to
              generate the <a href="build-file.html#docs">front page</a>
              of the site's web site.
            </td>
          </tr>
          <tr>
            <td><a href="#build">build</a></td>
            <td>
              Describes the build environment of a project.  This is used
              when invoking the <a href="build-file.html">build system</a>.
            </td>
          </tr>
        </table>
      </section>
      <section name="mailingLists">
        <p>
          This element describes all of the mailing lists associated with
          a project.  Each mailing list is described by a
          <code>mailingList</code> element.  The auto-generated site
          documentation references this information.
        </p>
        <subsection name="mailingList">
          <p>
            This element describes an individual mailing list.  The
            following table lists all of the possible child elements.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>name</td>
              <td>The name of the mailing list.</td>
            </tr>
            <tr>
              <td>subscribe</td>
              <td>The link to a URL that can be used to subscribe.</td>
            </tr>
            <tr>
              <td>unsubscribe</td>
              <td>The link to a URL that can be used to unsubscribe.</td>
            </tr>
            <tr>
              <td>archive</td>
              <td>The link to a URL that can browse the archive.</td>
            </tr>
          </table>
        </subsection>
      </section>
      <section name="developers">
        <p>
          This element describes all of the developers associated with a
          project.  Each developer is described by a
          <code>developer</code> element.  The auto-generated site
          documentation references this information.
        </p>
        <subsection name="developer">
          <p>
            This element describes an individual developer.  The
            following table lists all of the possible child elements.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>name</td>
              <td>The full name of the developer.</td>
            </tr>
            <tr>
              <td>id</td>
              <td>The username of the developer.</td>
            </tr>
            <tr>
              <td>email</td>
              <td>The email address of the developer.</td>
            </tr>
            <tr>
              <td>organization</td>
              <td>The organization to which the developer belongs.</td>
            </tr>
          </table>
        </subsection>
      </section>
      <section name="dependencies">
        <p>
          This element describes all of the dependencies associated with a
          project.  Each dependency is described by a
          <code>dependency</code> element.  The auto-generated site
          documentation references this information.
        </p>
        <subsection name="dependency">
          <p>
            This element describes an individual dependency.  The
            following table lists all of the possible child elements.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>name</td>
              <td>The name of the dependency.</td>
            </tr>
            <tr>
              <td>type</td>
              <td>Describes the type of the dependency.</td>
            </tr>
            <tr>
              <td>version</td>
              <td>The version of the dependency.</td>
            </tr>
            <tr>
              <td>jar</td>
              <td>The dependency's jar filename.</td>
            </tr>
          </table>
        </subsection>
      </section>
      <section name="build">
        <p>
          This element describes all of the build properties associated
          with a project.  There are several elements that describe a
          project's build environment.  Each one is described below:
        </p>
        <subsection name="jarResources">
          <p>
            This element specifies any additional resources that should be
            packaged up inside of the JAR file.  The following table lists
            all of the possible child elements.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>jarResource</td>
              <td>The path name of the resource to be packaged.</td>
            </tr>
          </table>
        </subsection>
        <subsection name="unitTestClassEntries">
          <p>
            This element specifies the classes which consist of the
            project's unit tests.  These unit tests must use the <a
            href="http:www.junit.org">JUnit</a> testing framework.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>unitTestClassEntry</td>
              <td>
                The pattern specifying a set of classes.  This value can
                be either: <code>include = AntPattern</code>,
                <code>exclude = AntPattern</code>, or a JAR descriptor
                file.
              </td>
            </tr>
          </table>
        </subsection>
        <subsection name="runtimeTestClassEntries">
          <p>
            This element specifies the classes which consist of the
            project's run-time tests.  
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>runtimeTestClassEntry</td>
              <td>
                The pattern specifying a set of classes.  This value can
                be either: <code>include = AntPattern</code>,
                <code>exclude = AntPattern</code>, or a JAR descriptor
                file.
              </td>
            </tr>
          </table>
        </subsection>
        <subsection name="sourceDirectories">
          <p>
            This element specifies the directories containing the source
            of the project.  The generated build system will compile these
            directories when the project is built.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>sourceDirectory</td>
              <td>
                A directory containing source that should be compiled as
                part of a project.
              </td>
            </tr>
          </table>
        </subsection>
        <subsection name="testSourceDirectories">
          <p>
            This element specifies the directories containing the test
            source of the project.  The generated build system will
            compile these directories when the project is being tested.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>testSourceDirectory</td>
              <td>
                A directory containing source that should be compiled as
                part of a project's tests.
              </td>
            </tr>
          </table>
        </subsection>
        <subsection name="aspectSourceDirectories">
          <p>
            This element specifies the directories containing the AspectJ
            source of the project.  The generated build system will
            compile these directories when the project is <a
            href="build-file.html">built</a> using Aspects.
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>aspectSourceDirectory</td>
              <td>
                A directory containing source that should be compiled as
                part of a project's aspects.
              </td>
            </tr>
          </table>
        </subsection>
        <subsection name="jars">
          <p>
            This element specifies the additional JARs that should be
            packaged as part of the final JAR.  [TODO: not quite sure how
            this is different than jarResources, need further
            clarification.]
          </p>
          <table>
            <tr><th>Element</th><th>Description</th></tr>
            <tr>
              <td>jar</td>
              <td>
                A JAR that should be packaged in the project's JAR.
              </td>
            </tr>
          </table>
        </subsection>
      </section>
    </body>
  </document>
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>