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><project></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>