complexType Model

complexType {http://maven.apache.org/POM/4.0.0}Model

Derived Types
{http://maven.apache.org/POM/4.0.0}Model
 {http://maven.apache.org/POM/4.0.0}project (by type)
Abstractfalse (This can be used in an instance)
Target Namespacehttp://maven.apache.org/POM/4.0.0
Declared Namespacesxmlns:xs=http://www.w3.org/2001/XMLSchema
xmlns=http://maven.apache.org/POM/4.0.0


Source

<xs:complexType name="Model">
    <
xs:annotation>
        <
xs:documentation source="version">3.0.0+</xs:documentation>
        <
xs:documentation source="description">
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.
        
</xs:documentation>
    </
xs:annotation>
    <
xs:all>
        <
xs:element name="parent" minOccurs="0" type="Parent">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Information on which parent POM to extend.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="modelVersion" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Declares to which version of project descriptor this POM conforms.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="groupId" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
The short name of the project group. This value is used to group
all jars for a project in one directory. For more info look at the
<a href="/reference/conventions.html">user guide</a>.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="artifactId" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
The short name of the project. This value is used in conjunction
with <code>groupId</code>
when naming <a href="/plugins/java/index.html">jars</a> and
<a href="/plugins/dist/index.html">distribution files</a>.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="packaging" minOccurs="0" type="xs:string" default="jar">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The type of artifact this project produces.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="name" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
The full name of the project. This value is used when
generating <a href="/plugins/javadoc/index.html">JavaDoc</a>
titles.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="version" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The current version of the artifact produced by this project.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="description" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
Optional. A detailed description of the project.
This description is used as the default to generate the
<a href="/plugins/site/index.html">Mailing Lists</a> of the project's
web site, and is shown when <code>maven --usage</code> is called on
the project. While this element can be specified as CDATA to enable
the use of HTML tags within the description, you are encouraged to
provide an alternative home page using <code>xdocs/index.xml</code>
if this is required.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="url" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">The URL to the project's homepage.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="prerequisites" minOccurs="0" type="Prerequisites">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Describes the prerequisites in the build environment for this project.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="issueManagement" minOccurs="0" type="IssueManagement">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The project's issue management information.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="ciManagement" minOccurs="0" type="CiManagement">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The project's continuous integration management information.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="inceptionYear" minOccurs="0" type="xs:string">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
The year of the project's inception specified with 4 digits.
This value is used when generating
<a href="/plugins/javadoc/index.html">JavaDoc</a> copyright notices.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="mailingLists" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
Contains information about a project's mailing lists. This
is used to generate the <a href="/plugins/site/index.html">front
page</a> of the site's web site.
                
</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="mailingList" minOccurs="0" maxOccurs="unbounded"
                        
type="MailingList"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="developers" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
Describes the committers to a project. This is used to
generate the <a href="/plugins/site/index.html">Project Team</a>
page of the project's web site.
                
</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="developer" minOccurs="0" maxOccurs="unbounded" type="Developer"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="contributors" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
Describes the contributors to a project. This is used to generate
the <a href="/plugins/site/index.html">Project Team</a> page of
the project's web site.
                
</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="contributor" minOccurs="0" maxOccurs="unbounded"
                        
type="Contributor"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="licenses" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
This element describes all of the licenses for this project.
Each license is described by a <code>license</code> element, which
is then described by additional elements (described below). The
auto-generated site documentation references this information.
Projects should only list the license(s) that applies to the project
and not the licenses that apply to dependencies.
                
</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="license" minOccurs="0" maxOccurs="unbounded" type="License"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="scm" minOccurs="0" type="Scm">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Specification for the SCM used by the project.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="organization" minOccurs="0" type="Organization">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
This element describes various attributes of the organization to
which the project belongs. These attributes are utilized when
documentation is created (for copyright notices and links).
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="build" minOccurs="0" type="Build">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">Information required to build the project.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="profiles" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Listing of project-local build profiles which will modify the build process when activated.</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="profile" minOccurs="0" maxOccurs="unbounded" type="Profile"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="modules" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The modules to build in addition to the current project</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="module" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="repositories" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The lists of the remote repositories</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="repository" minOccurs="0" maxOccurs="unbounded"
                        
type="Repository"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="pluginRepositories" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">The lists of the remote repositories for discovering plugins</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="pluginRepository" minOccurs="0" maxOccurs="unbounded"
                        
type="Repository"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="dependencies" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">3.0.0+</xs:documentation>
                <
xs:documentation source="description">
<p>
This element describes all of the dependencies associated with a
project. Each dependency is described by a
<code>dependency</code> element, which is then described by
additional elements (described below).
</p>
<p>
These dependencies are used to construct a classpath for your
project during the build process.
</p>
<p>
Maven can automatically download these dependencies from a
<a href="/user-guide.html#Remote%20Repository%20Layout">remote repository</a>.
</p>
<p>
The filename that Maven downloads from the repository is
<code>artifactId-version.jar</code> where <code>artifactId</code>
corresponds to the <code>artifactId</code> element and
<code>version</code> corresponds to the <code>version</code> element.
</p>
<p>
When Maven goes looking for a dependency in the remote repository,
it uses the dependency element to construct the URL to download
from. This URL is defined as:
</p>
<div class="source">
<pre>${repo}/${groupId}/${type}s/${artifactId}-${version}.${type}</pre>
</div>
<p>
Where
</p>
<dl>
<dt>repo</dt>
<dd>
is the remote repository URL specified by
<code>${maven.repo.remote}</code>
</dd>

<dt>groupId</dt>
<dd>is taken from the dependency element</dd>

<dt>type</dt>
<dd>is taken from the dependency element</dd>

<dt>artifactId</dt>
<dd>is taken from the dependency element</dd>

<dt>version</dt>
<dd>is taken from the dependency element</dd>
</dl>
                
</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:element name="dependency" minOccurs="0" maxOccurs="unbounded"
                        
type="Dependency"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="reports" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">NOT A VALID ELEMENT. LISTED TO ALLOW LEGACY REPOSITORY POMs TO PARSE.</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
        <
xs:element name="reporting" minOccurs="0" type="Reporting">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">
This element includes the specification of reports to be
included in a Maven-generated site. These reports will be run
when a user executes <code>maven site</code>. All of the
reports will be included in the navigation bar for browsing in
the order they are specified.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="dependencyManagement" minOccurs="0" type="DependencyManagement">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">
Default dependency information for grouped projects inheriting from
this one. The dependency information here will not be checked.
Instead, when a POM derived from this one declares a dependency
described by a groupId and an artifactId (version not necessary),
the entries in here will supply default values for that dependency.
Any locally-supplied information for a particular dependency will
overwrite any information specified here for that project.
                
</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="distributionManagement" minOccurs="0" type="DistributionManagement">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Distribution information for a project.</xs:documentation>
            </
xs:annotation>
        </
xs:element>
        <
xs:element name="properties" minOccurs="0">
            <
xs:annotation>
                <
xs:documentation source="version">4.0.0</xs:documentation>
                <
xs:documentation source="description">Properties used to fill in plugin configuration</xs:documentation>
            </
xs:annotation>
            <
xs:complexType>
                <
xs:sequence>
                    <
xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
                </
xs:sequence>
            </
xs:complexType>
        </
xs:element>
    </
xs:all>
</
xs:complexType>


Documentation

See also: version
3.0.0+
See also: description
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.


complexType Model


Stylus Studio XML Schema Library Home
Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio®, a product from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2006 All Rights Reserved.