mirror of https://github.com/apache/maven.git
2703 lines
92 KiB
Plaintext
2703 lines
92 KiB
Plaintext
<!--
|
|
|
|
|
| o add specification element to a field, this would be more a technical description of
|
|
| what is allowed in the field.
|
|
|
|
|
| o validators: there could be several levels of validation. Simple type validation could
|
|
| be done with a regex, but we need inter-field validation and rules which could be
|
|
| dealt with by something like drools.
|
|
|
|
|
| o i18n: would be good to be able to have names/descriptions/specifications
|
|
| in as many languages as possible.
|
|
|
|
|
| o annotation mechanism so that changes to the model can be accurately tracked.
|
|
|
|
|
| o need to clean up all the descriptions, matching anything to the current project-descriptor.xml file and
|
|
| improving on that
|
|
|
|
|
| o use enums where appropriate (eg dependency scope)
|
|
|
|
|
| o a number of elements have a grouId/artifactId and sometimes version. It would be good to have them all extend one
|
|
| definition of these types
|
|
|
|
|
-->
|
|
<model>
|
|
<id>maven</id>
|
|
<name>Maven</name>
|
|
<description><![CDATA[
|
|
<p>This is a reference for the Maven project descriptor used in Maven.</p>
|
|
<p>An XSD is available at:</p>
|
|
<ul>
|
|
<li><a href="http://maven.apache.org/maven-v3_0_0.xsd">http://maven.apache.org/maven-v3_0_0.xsd</a> for Maven 1.1
|
|
.</li>
|
|
<li><a href="http://maven.apache.org/maven-v4_0_0.xsd">http://maven.apache.org/maven-v4_0_0.xsd</a> for Maven 2.0
|
|
.</li>
|
|
</ul>
|
|
]]></description>
|
|
<defaults>
|
|
<default>
|
|
<key>package</key>
|
|
<value>org.apache.maven.model</value>
|
|
</default>
|
|
</defaults>
|
|
<classes>
|
|
<class rootElement="true" xml.tagName="project">
|
|
<name>Model</name>
|
|
<superClass>ModelBase</superClass>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>extend</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
The location of the parent project, if one exists. Values from the
|
|
parent project will be the default for this project if they are
|
|
left unspecified. The path may be absolute, or relative to the
|
|
current project.xml file.
|
|
|
|
<div class="source"><pre><extend>${basedir}/../project.xml</extend></pre></div>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>parent</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[Information on which parent POM to extend.]]></description>
|
|
<association>
|
|
<type>Parent</type>
|
|
</association>
|
|
<comment></comment>
|
|
</field>
|
|
<field>
|
|
<name>modelVersion</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[Declares to which version of project descriptor this POM conforms.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>pomVersion</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<type>String</type>
|
|
<description><![CDATA[
|
|
The current version of the Maven project descriptor. This version
|
|
number enables Maven to automatically update an out-of-date project
|
|
descriptor when a new version is available. This version number
|
|
should not be changed after the descriptor has been created. Maven
|
|
will update it automatically.
|
|
]]></description>
|
|
</field>
|
|
<field>
|
|
<name>id</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The short name of the project. This value is used when naming
|
|
<a href="/plugins/java/index.html">jars</a> and
|
|
<a href="/plugins/dist/index.html">distribution files</a>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
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>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
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>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>packaging</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The type of artifact this project produces.]]></description>
|
|
<type>String</type>
|
|
<defaultValue>jar</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>name</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The full name of the project. This value is used when
|
|
generating <a href="/plugins/javadoc/index.html">JavaDoc</a>
|
|
titles.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>currentVersion</name>
|
|
<description><![CDATA[
|
|
The current version of the project. This value is used when
|
|
naming <a href="/plugins/java/index.html">jars</a> and
|
|
<a href="/plugins/dist/index.html">distribution files</a>.
|
|
]]></description>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>version</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The current version of the artifact produced by this project.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>shortDescription</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
A short description of the project. The short description should be
|
|
limited to a single line.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>description</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The URL to the project's homepage.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>logo</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
The URL to the project's logo image. This can be an URL relative
|
|
to the base directory of the generated web site,
|
|
(e.g., <code>/images/project-logo.png</code>) or an absolute URL
|
|
(e.g., <code>http://my.corp/project-logo.png</code>). This is used
|
|
when generating the project documentation.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>prerequesites</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
Describes the prerequesites in the build environment for this project.
|
|
</description>
|
|
<association>
|
|
<type>Prerequesites</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>issueTrackingUrl</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. The URL to the project's issue tracking system.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>issueManagement</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The project's issue management information.]]></description>
|
|
<association>
|
|
<type>IssueManagement</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>ciManagement</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The project's continuous integration management information.]]></description>
|
|
<association>
|
|
<type>CiManagement</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>inceptionYear</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>gumpRepositoryId</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. This is the Id of the Gump repository that this project is
|
|
part of (assuming it participates in the Gump integration
|
|
effort).
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>siteAddress</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. The hostname of the web server that hosts the project's web
|
|
site. This is used when the web site is
|
|
<a href="/plugins/site/index.html">deployed</a>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>siteDirectory</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. The directory on the web server where the public web site
|
|
for this project resides. This is used when the web site is
|
|
<a href="/plugins/site/index.html">deployed</a>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>distributionSite</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. The server server where the final
|
|
distributions will be published. This is used when the
|
|
distributions are
|
|
<a href="/plugins/dist/index.html">deployed</a>.
|
|
<p>
|
|
If this isn't defined, the central repository is used instead as
|
|
determined by <code>maven.repo.central</code> and
|
|
<code>maven.repo.central.directory</code>
|
|
</p>
|
|
]]></description>
|
|
<type>String</type>
|
|
<comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
|
|
</field>
|
|
<field>
|
|
<name>distributionDirectory</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. The directory on the web server where the final
|
|
distributions will be published. This is used when the
|
|
distributions are
|
|
<a href="/plugins/dist/index.html">deployed</a>.
|
|
]]></description>
|
|
<type>String</type>
|
|
<comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
|
|
</field>
|
|
<field>
|
|
<name>mailingLists</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>MailingList</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>developers</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>Developer</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>contributors</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>Contributor</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>licenses</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>License</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>versions</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. Contains information on previous versions of the
|
|
project. This information is used when invoking the
|
|
<a href="/plugins/dist/index.html"><code>maven:dist</code></a>
|
|
target.
|
|
]]></description>
|
|
<association>
|
|
<type>Version</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>branches</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. Contains information on branches of the
|
|
project. This information is used when invoking the
|
|
<a href="/plugins/dist/index.html"><code>maven:dist</code></a>
|
|
target.
|
|
]]></description>
|
|
<association>
|
|
<type>Branch</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>packageGroups</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[Package groups required for complete javadocs.]]></description>
|
|
<association>
|
|
<type>PackageGroup</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>reports</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>scm</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[Specification for the SCM used by the project.]]></description>
|
|
<association>
|
|
<type>Scm</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>repository</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[Specification for the SCM used by the project.]]></description>
|
|
<association>
|
|
<type>Repository</type>
|
|
</association>
|
|
<comment>This element needs to be renamed as it conflicts with the existing notion of repositories in
|
|
Maven.</comment>
|
|
</field>
|
|
<field>
|
|
<name>organization</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
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).
|
|
]]></description>
|
|
<association>
|
|
<type>Organization</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>properties</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Project properties that will be used by various plugins
|
|
]]></description>
|
|
<type>Properties</type>
|
|
<association xml.mapStyle="inline">
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field xml.tagName="package">
|
|
<name>packageName</name>
|
|
<version>3.0.0</version>
|
|
<type>String</type>
|
|
<description><![CDATA[
|
|
The Java package name of the project. This value is used
|
|
when generating <a href="/plugins/javadoc/index.html">JavaDoc</a>.
|
|
]]></description>
|
|
</field>
|
|
<field>
|
|
<name>build</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[Information required to build the project.]]></description>
|
|
<association>
|
|
<type>Build</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>profiles</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Listing of project-local build profiles which will modify the build process when activated.
|
|
]]></description>
|
|
<association>
|
|
<type>Profile</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>3.0.0</version>
|
|
<code><![CDATA[
|
|
|
|
public void setVersion(String version)
|
|
{
|
|
this.currentVersion = version;
|
|
}
|
|
|
|
public String getVersion()
|
|
{
|
|
return currentVersion;
|
|
}
|
|
|
|
/* We need this because we can't use package as a field name.*/
|
|
public void setPackage(String packageName)
|
|
{
|
|
this.packageName = packageName;
|
|
}
|
|
|
|
public String getPackage()
|
|
{
|
|
return packageName;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
public String getId()
|
|
{
|
|
StringBuffer id = new StringBuffer();
|
|
|
|
id.append( getGroupId() );
|
|
id.append( ":" );
|
|
id.append( getArtifactId() );
|
|
id.append( ":" );
|
|
id.append( getPackaging() );
|
|
id.append( ":" );
|
|
id.append( getVersion() );
|
|
|
|
return id.toString();
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>ModelBase</name>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>modules</name>
|
|
<version>4.0.0</version>
|
|
<description>The modules to build in addition to the current project</description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>repositories</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The lists of the remote repositories]]></description>
|
|
<association>
|
|
<type>Repository</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>pluginRepositories</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The lists of the remote repositories for discovering plugins]]></description>
|
|
<association>
|
|
<type>Repository</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
<comment>This may be removed or relocated in the near future. It is undecided whether plugins really need a
|
|
remote repository set of their own.</comment>
|
|
</field>
|
|
<field>
|
|
<name>dependencies</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
<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>
|
|
]]></description>
|
|
<association>
|
|
<type>Dependency</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
<comment>These should ultimately only be compile time dependencies when transitive dependencies come into
|
|
play.</comment>
|
|
</field>
|
|
<field>
|
|
<name>reports</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
NOT A VALID ELEMENT. LISTED TO ALLOW LEGACY REPOSITORY POMs TO PARSE.
|
|
]]></description>
|
|
<type>DOM</type>
|
|
</field>
|
|
<field>
|
|
<name>reporting</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>Reporting</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>dependencyManagement</name>
|
|
<version>4.0.0</version>
|
|
<required>false</required>
|
|
<description><![CDATA[
|
|
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.
|
|
]]></description>
|
|
<association>
|
|
<type>DependencyManagement</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>distributionManagement</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[Distribution information for a project.]]></description>
|
|
<association>
|
|
<type>DistributionManagement</type>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<!-- @todo: is any of this too CVS specific? Investigate other SCMs -->
|
|
<class>
|
|
<name>Branch</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Optional. Contains information on branches of the project. This
|
|
information is used when invoking the
|
|
<a href="/plugins/dist/index.html"><code>maven:dist</code></a> target.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>tag</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The branch tag in the version control system (e.g. cvs) used by the
|
|
project for the source code associated with this branch of the
|
|
project.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>PluginContainer</name>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>plugins</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
The plugins specified here are not validated until they
|
|
are referenced in a POM within the group. This allows the
|
|
specification of a "standard" version for a particular
|
|
plugin.
|
|
</description>
|
|
<association>
|
|
<type>Plugin</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
Map pluginMap;
|
|
|
|
public void flushPluginMap()
|
|
{
|
|
this.pluginMap = null;
|
|
}
|
|
|
|
public Map getPluginsAsMap()
|
|
{
|
|
if ( pluginMap == null )
|
|
{
|
|
pluginMap = new HashMap();
|
|
if ( plugins != null )
|
|
{
|
|
for ( Iterator it = plugins.iterator(); it.hasNext(); )
|
|
{
|
|
Plugin plugin = (Plugin) it.next();
|
|
pluginMap.put( plugin.getKey(), plugin );
|
|
}
|
|
}
|
|
}
|
|
return pluginMap;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>PluginConfiguration</name>
|
|
<version>3.0.0+</version>
|
|
<superClass>PluginContainer</superClass>
|
|
<fields>
|
|
<!-- [ jdcasey:06-Mar-2005 ] Added to handle version management, etc. for
|
|
| plugins to be used in sub-projects. -->
|
|
<field>
|
|
<name>pluginManagement</name>
|
|
<version>4.0.0</version>
|
|
<required>false</required>
|
|
<description><![CDATA[
|
|
Default plugin information to be made available for reference by
|
|
projects derived from this one. This plugin configuration will not
|
|
be validated or bound to the lifecycle unless referenced. Any local
|
|
configuration for a given plugin will override the plugin's entire
|
|
definition here.
|
|
]]></description>
|
|
<association>
|
|
<type>PluginManagement</type>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>BuildBase</name>
|
|
<version>3.0.0+</version>
|
|
<superClass>PluginConfiguration</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>defaultGoal</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The default goal (or phase in Maven 2) to execute when none is specified for the project.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>resources</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
This element describes all of the resources associated with a
|
|
project or unit tests. Each resource is described by a resource
|
|
element, which is then described by additional elements (described
|
|
<a href="#resource">below</a>). These resources are used to complete
|
|
the jar file or to run unit test.
|
|
]]></description>
|
|
<association>
|
|
<type>Resource</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>testResources</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
This element describes all of the resources associated with a
|
|
project's unit tests. Each resource is described by a resource
|
|
element, which is then described by additional elements (described
|
|
<a href="#resource">below</a>). These resources are used to complete
|
|
the jar file or to run unit test.
|
|
]]></description>
|
|
<association>
|
|
<type>Resource</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>finalName</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The filename (including an extension, but with no path information) that the produced artifact
|
|
will be called. The default value is artifactId-version.extension (where extension is derived from
|
|
type).
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Build</name>
|
|
<version>3.0.0+</version>
|
|
<superClass>BuildBase</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>nagEmailAddress</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
An address to which notifications regarding the status of builds
|
|
for this project can be sent. This is intended for use by tools
|
|
which do unattended builds, for example those providing for
|
|
continuous integration. Currently this is used by the
|
|
<a href="/plugins/gump/">gump plugin</a>
|
|
target.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>sourceDirectory</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
This element specifies a directory containing the source
|
|
of the project. The generated build system will compile
|
|
the source in this directory when the project is built.
|
|
The path given is relative to the project descriptor.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>scriptSourceDirectory</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
This element specifies a directory containing the script sources
|
|
of the project. This directory is meant to be different from the
|
|
sourceDirectory, in that its contents will be copied to the output
|
|
directory in most cases (since scripts are interpreted rather than
|
|
compiled).
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>unitTestSourceDirectory</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
This element specifies a directory containing the unit test
|
|
source of the project. The generated build system will
|
|
compile these directories when the project is being tested.
|
|
The unit tests must use the JUnit test framework.
|
|
The path given is relative to the project descriptor.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>testSourceDirectory</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
This element specifies a directory containing the unit test
|
|
source of the project. The generated build system will
|
|
compile these directories when the project is being tested.
|
|
The unit tests must use the JUnit test framework.
|
|
The path given is relative to the project descriptor.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>aspectSourceDirectory</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
This element specifies a directory containing Aspect
|
|
sources of the project. The generated build system will
|
|
compile the Aspects in this directory when the project is
|
|
built if Aspects have been enabled (see the
|
|
<a
|
|
href="/plugins/aspectj/goals.html">Aspectj goals</a> document).
|
|
The path given is relative to the project descriptor.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>integrationUnitTestSourceDirectory</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
This element specifies a directory containing integration test
|
|
sources of the project.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>sourceModifications</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
This element describes all of the sourceModifications associated
|
|
with a project. Each source modification is described by a
|
|
<code>sourceModification</code> element, which is then described by
|
|
additional elements (described below). These modifications are used
|
|
to exclude or include various source depending on the environment
|
|
the build is running in.
|
|
]]></description>
|
|
<association>
|
|
<type>SourceModification</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>unitTest</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
This element specifies unit tests associated with the project.
|
|
]]></description>
|
|
<defaultValue>new UnitTest()</defaultValue>
|
|
<association>
|
|
<type>UnitTest</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>directory</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The directory where all files generated by the build is placed.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>outputDirectory</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The directory where compiled application classes are placed.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>testOutputDirectory</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The directory where compiled test classes are placed.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>CiManagement</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>system</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The name of the continuous integration system i.e. Bugzilla]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[Url for the continuous integration system used by the project.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>notifiers</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Configuration for notifying developers/users when a build is
|
|
unsuccessful, including user information and notification mode.
|
|
]]></description>
|
|
<association>
|
|
<multiplicity>*</multiplicity>
|
|
<type>Notifier</type>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Notifier</name>
|
|
<description>
|
|
Configures one method for notifying users/developers when a build breaks.
|
|
</description>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>type</name>
|
|
<version>4.0.0</version>
|
|
<defaultValue>mail</defaultValue>
|
|
<type>String</type>
|
|
<description>The mechanism used to deliver notifications.</description>
|
|
</field>
|
|
<!-- TODO: Remove it after continuum alpha-3 release -->
|
|
<field>
|
|
<name>address</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<description>
|
|
Where to send the notification to - eg email address.
|
|
</description>
|
|
</field>
|
|
<field>
|
|
<name>configuration</name>
|
|
<description>Extended configuration specific to this notifier goes here.</description>
|
|
<type>Properties</type>
|
|
<association xml.mapStyle="inline">
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Contributor</name>
|
|
<description>
|
|
Description of a person who has contributed to the project, but who does
|
|
not have commit privileges. Usually, these contributions come in the
|
|
form of patches submitted.
|
|
</description>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>name</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The full name of the contributor.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>email</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The email address of the contributor.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The URL for the homepage of the contributor.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<!-- TODO: should this just be a single Organization element -->
|
|
<field>
|
|
<name>organization</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The organization to which the contributor belongs.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>organizationUrl</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The URL of the organization.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>roles</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The roles the contributor plays in the project. Each role is
|
|
described by a <code>role</code> element, the body of which is a
|
|
role name.
|
|
]]></description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>timezone</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The timezone the contributor is in. This is a number in the range -11 to 12.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>properties</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
Properties about the contributor, such as an instant messenger handle.
|
|
]]></description>
|
|
<type>Properties</type>
|
|
<association xml.mapStyle="inline">
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Dependency</name>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<version>3.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
<p>The name of the dependency.</p>
|
|
<p>
|
|
<strong>Note:</strong> The use of the id element for
|
|
a dependency is deprecated. Please use <code>groupId</code> and
|
|
<code>artifactId</code> together instead.
|
|
</p>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The project group that produced the dependency, e.g.
|
|
<code>geronimo</code>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>3.0.0+</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The unique id for an artifact produced by the project group, e.g.
|
|
<code>germonimo-jms</code>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>version</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The version of the dependency, e.g. <code>3.2.1</code>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
This url will be provided to the user if the jar file cannot be downloaded
|
|
from the central repository.
|
|
]]></description>
|
|
<type>String</type>
|
|
<comment>The URL should really be gleaned from a shared database of dependency information.</comment>
|
|
</field>
|
|
<field>
|
|
<name>jar</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Literal name of the artifact. Used to override the calculated artifact name.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>type</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The type of dependency. This defaults to <code>jar</code>.
|
|
Known recognised dependency types are:
|
|
<ul>
|
|
<li><code>jar</code></li>
|
|
<li><code>ejb</code></li>
|
|
<li><code>plugin</code></li>
|
|
</ul>
|
|
]]></description>
|
|
<type>String</type>
|
|
<defaultValue>jar</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>properties</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Properties about the dependency. Various plugins allow you to
|
|
<code>mark</code> dependencies with properties. For example the
|
|
<a href="/plugins/war/index.html">war</a> plugin looks for a
|
|
<code>war.bundle</code> property, and if found will include the
|
|
dependency in <code>WEB-INF/lib</code>. For example syntax, check
|
|
the war plugin docs.
|
|
]]></description>
|
|
<type>Properties</type>
|
|
<association xml.mapStyle="inline">
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>scope</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The scope of the dependency - compile, runtime, test. Used to
|
|
calculate the various classpaths used for testing, etc. and for
|
|
determining which artifacts to include in a distribution of this
|
|
project. For more information, see
|
|
<a href="http://maven.apache.org/maven2/dependencies.html">Dependency Mechanism</a>.]]>
|
|
</description>
|
|
<type>String</type>
|
|
<defaultValue>compile</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>exclusions</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
Lists a set of artifacts that should be excluded from this dependency's artifact list when it comes to
|
|
calculating transitive dependencies.
|
|
</description>
|
|
<association>
|
|
<type>Exclusion</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>3.0.0+</version>
|
|
<code><![CDATA[
|
|
public String toString()
|
|
{
|
|
return groupId + "/" + type + "s:" + artifactId + "-" + version;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
public String getId()
|
|
{
|
|
return groupId + ":" + artifactId + ":" + type + ":" + version;
|
|
}
|
|
|
|
public String getManagementKey()
|
|
{
|
|
return groupId + ":" + artifactId + ":" + type;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
<codeSegment>
|
|
<version>3.0.0</version>
|
|
<code><![CDATA[
|
|
public String getKey()
|
|
{
|
|
return getId() + ":" + getType();
|
|
}
|
|
|
|
public String getArtifactDirectory()
|
|
{
|
|
return getGroupId();
|
|
}
|
|
|
|
public String getArtifact()
|
|
{
|
|
// If the jar name has been explicty set then use that. This
|
|
// is when the <jar/> element is explicity used in the POM.
|
|
if ( getJar() != null)
|
|
{
|
|
return getJar();
|
|
}
|
|
|
|
return getArtifactId() + "-" + getVersion() + "." + getExtension();
|
|
}
|
|
|
|
public String getExtension()
|
|
{
|
|
if ("ejb".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType()) || "uberjar".equals(getType())) return "jar";
|
|
return getType();
|
|
}
|
|
|
|
public boolean isAddedToClasspath()
|
|
{
|
|
return ("jar".equals(getType()) || "ejb".equals(getType()) || "sar".equals(getType()));
|
|
}
|
|
|
|
public boolean isPlugin()
|
|
{
|
|
return ("plugin".equals(getType()));
|
|
}
|
|
|
|
public String getProperty( String property )
|
|
{
|
|
return getProperties().getProperty( property );
|
|
}
|
|
|
|
public boolean equals( Object o )
|
|
{
|
|
if ( this == o )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if ( !( o instanceof Dependency ) )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
Dependency d = (Dependency) o;
|
|
return getId().equals( d.getId() );
|
|
}
|
|
|
|
public int hashCode()
|
|
{
|
|
return getId().hashCode();
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<superClass>Contributor</superClass>
|
|
<name>Developer</name>
|
|
<description><![CDATA[
|
|
Information about one of the committers on this project. Derived from
|
|
<code>Contributor</code>.
|
|
]]></description>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The username of the developer.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Exclusion</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The artifact id of the project to exclude.]]></description>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
</field>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The group id of the project to exclude.]]></description>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>IssueManagement</name>
|
|
<description>
|
|
Information about the bugtracking system used to manage this project.
|
|
</description>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>system</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The name of the issue management system i.e. Bugzilla]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[Url for the issue management system used by the project.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>DistributionManagement</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
This elements describes all that pertains to distribution for a project.
|
|
It is primarily used for deployment of artifacts and distributions
|
|
produced by the build.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>repository</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Information needed for deploying to remote repository artifacts
|
|
generated by the project
|
|
]]></description>
|
|
<association>
|
|
<type>Repository</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>site</name>
|
|
<description><![CDATA[
|
|
Information needed for deploying website files of the project.
|
|
]]></description>
|
|
<version>4.0.0</version>
|
|
<association>
|
|
<type>Site</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>downloadUrl</name>
|
|
<version>4.0.0+</version>
|
|
<description><![CDATA[
|
|
The URL of the project's download page. If not given users will be referred to the homepage given by
|
|
<code>url</code>.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>relocation</name>
|
|
<version>4.0.0</version>
|
|
<description>Relocation information if the artifact has been moved to a new group/artifactId</description>
|
|
<association>
|
|
<type>Relocation</type>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>License</name>
|
|
<description><![CDATA[
|
|
Describes the licenses for this project. This is used to generate
|
|
the <a href="/plugins/site/index.html">License</a> page of
|
|
the project's web site. Typically the licenses listed for the project
|
|
are that of the project itself, and not of dependencies.
|
|
]]></description>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>name</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The full legal name of the license.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The official url for the license text.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>distribution</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The primary method by which this project may be distributed.
|
|
<dl>
|
|
<dt>repo</dt>
|
|
<dd>may be downloaded from the Maven repository</dd>
|
|
<dt>manual</dt>
|
|
<dd>user must manually download and install the dependency.</dd>
|
|
</dl>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>comments</name>
|
|
<description>
|
|
Addendum information pertaining to this license.
|
|
</description>
|
|
<version>3.0.0+</version>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>MailingList</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
This element describes all of the mailing lists associated with
|
|
a project. Each mailing list is described by a
|
|
<code>mailingList</code> element, which is then described by
|
|
additional elements (described below). The auto-generated site
|
|
documentation references this information.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>name</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The name of the mailing list.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>subscribe</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The email address or link that can be used to subscribe to the mailing list.
|
|
If this is an email address, a
|
|
<code>mailto:</code> link will automatically be created when
|
|
the documentation is created.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>unsubscribe</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The email address or link that can be used to unsubscribe to
|
|
the mailing list. If this is an email address, a
|
|
<code>mailto:</code> link will automatically be created
|
|
when the documentation is created.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>post</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The email address or link that can be used to post to
|
|
the mailing list. If this is an email address, a
|
|
<code>mailto:</code> link will automatically be created
|
|
when the documentation is created.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>archive</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The link to a URL where you can browse the mailing list archive.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>otherArchives</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The link to other URLs where you can browse the list archive.
|
|
]]></description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<comment>
|
|
We could probably have a specific element for a dev mailing list for
|
|
things like CI, and maybe even a specific element for the user and scm
|
|
mailing lists. Then leave the more lose structure for any other type
|
|
of mailing list.
|
|
</comment>
|
|
</class>
|
|
<class>
|
|
<name>Organization</name>
|
|
<description>Specifies the organization who produces this project.</description>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>name</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The full name of the organization.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[The URL to the organization's home page.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<!-- TODO: deprecated in 4 -->
|
|
<field>
|
|
<name>logo</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
The URL to the organization's logo image. This can be an URL relative
|
|
to the base directory of the generated web site,
|
|
(e.g., <code>/images/org-logo.png</code>) or an absolute URL
|
|
(e.g., <code>http://my.corp/logo.png</code>). This value is used
|
|
when generating the project documentation.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>PackageGroup</name>
|
|
<version>3.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>title</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[the description]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>packages</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[the description]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>PatternSet</name>
|
|
<version>3.0.0+</version>
|
|
<fields>
|
|
<field>
|
|
<name>includes</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[the description]]></description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>excludes</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[the description]]></description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Parent</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The artifact id of the project to extend.]]></description>
|
|
<required>true</required>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The group id of the project to extend.]]></description>
|
|
<required>true</required>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>version</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The version of the project to extend.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Repository</name>
|
|
<version>3.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>connection</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
<p>
|
|
Optional. The source configuration management system URL
|
|
that describes the repository and how to connect to the
|
|
repository. This is used by Maven when <a href="/plugins/dist/index.html">building versions</a>
|
|
from specific ID.
|
|
</p>
|
|
<p>
|
|
The format of this element is as follows:
|
|
</p>
|
|
<pre>scm:<provider>:<provider-parameters></pre>
|
|
<p>For cvs, the format for pserver repositories should be:</p>
|
|
<div class="source">
|
|
<pre>scm:cvs:pserver:user@host:/cvs/root:module-name</pre>
|
|
</div>
|
|
<p>
|
|
For local networked repositories (eg. pserver to local machine)
|
|
</p>
|
|
<div class="source">
|
|
<pre>scm:cvs:lserver:user@host:/cvs/root:module-name</pre>
|
|
</div>
|
|
<p>
|
|
For ssh access:
|
|
</p>
|
|
<div class="source">
|
|
<pre>scm:cvs:ext:user@host:/cvs/root:module-name</pre>
|
|
</div>
|
|
|
|
Remember that CVS will expect an environment variable called
|
|
<code>CVS_RSH</code> to be set, typically to <code>ssh</code> or your
|
|
ssh client.
|
|
|
|
<p>
|
|
Some cvs clients support other protocols, such as ntserver and extssh.
|
|
Here's an example using CVS NT and ntserver:
|
|
</p>
|
|
<div class="source">
|
|
<pre>scm|cvs|ntserver|user@server|e:\cvs|Deployment</pre>
|
|
</div>
|
|
|
|
Note the use of the vertical bar as delimiter as the repository has a
|
|
colon (<code>:</code>) in it.
|
|
|
|
<p>
|
|
For local file system repositories
|
|
</p>
|
|
<div class="source">
|
|
<pre>scm:cvs:local:ignored:/cvs/root:module-name</pre>
|
|
</div>
|
|
|
|
<p>
|
|
For StarTeam access:
|
|
</p>
|
|
<div class="source">
|
|
<pre>scm:starteam:username:password@host:port/project/view/folder</pre>
|
|
</div>
|
|
|
|
All of this information can be had from either the StarTeam Universal
|
|
Client (Tools->Server Administration->Server Properties) or from the
|
|
administrator.
|
|
|
|
<p>
|
|
The delimiter is determined by the character after "scm". eg.
|
|
<code>scm|cvs|pserver|user@host|/cvs/root|module-name</code>
|
|
is equivalent to that listed above. This can be useful for Windows users
|
|
who have : in their cvsroot parameter (eg. D:\cvsroot)
|
|
</p>
|
|
<p>
|
|
Where <code>pserver</code> is the protocol used to access CVS,
|
|
<code>user@host</code> is the user name to log in to the specified
|
|
cvs <strong>host</strong>, <code>/cvs/root</code> is the cvs root
|
|
directory, and <code>module-name</code> is the name of the cvs
|
|
module to be worked on
|
|
</p>
|
|
|
|
<p>As an example, the settings for an Apache project are usually:</p>
|
|
<pre>scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:module-name</pre>
|
|
|
|
<p>
|
|
Currently CVS, Starteam and SubVersion are the only supported scm's.
|
|
Others will be added as soon as possible
|
|
</p>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>developerConnection</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
Just like connection, but for developers, i.e. this scm connection
|
|
will not be read only.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[The URL to the project's browsable CVS repository.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Scm</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>connection</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The source configuration management system URL
|
|
that describes the repository and how to connect to the
|
|
repository. This is used by Maven when
|
|
<a
|
|
href="/plugins/dist/index.html">building versions</a>
|
|
from specific ID.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>developerConnection</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Just like connection, but for developers, i.e. this scm connection
|
|
will not be read only.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>tag</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The tag of current code. By default, it's set to HEAD during development.
|
|
]]></description>
|
|
<type>String</type>
|
|
<defaultValue>HEAD</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The URL to the project's browsable CVS repository.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>FileSet</name>
|
|
<version>3.0.0+</version>
|
|
<superClass>PatternSet</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>directory</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
Describe the directory where the resource is stored.
|
|
The path may be absolute, or relative to the project.xml file.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Resource</name>
|
|
<description><![CDATA[
|
|
This element describes all of the resources associated with a project or
|
|
unit tests. Each resource is described by a resource element, which is
|
|
then described by additional elements (described
|
|
<a href="#resource">below</a>). These resources are used to complete the
|
|
jar file or to run unit test.
|
|
]]></description>
|
|
<version>3.0.0+</version>
|
|
<superClass>FileSet</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>targetPath</name>
|
|
<version>3.0.0+</version>
|
|
<description><![CDATA[
|
|
Describe the resource target path. For example, if you want that
|
|
resource appear into a specific package
|
|
(<code>org.apache.maven.messages</code>), you must specify this
|
|
element with this value : <code>org/apache/maven/messages</code>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>filtering</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[Boolean. Describe if resources are filtered or not.]]></description>
|
|
<type>boolean</type>
|
|
<defaultValue>false</defaultValue>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>SourceModification</name>
|
|
<description><![CDATA[
|
|
This element describes all of the sourceModifications associated with a
|
|
project. Each source modification is described by a
|
|
<code>sourceModification</code> element, which is then described by
|
|
additional elements (described below). These modifications are used
|
|
to exclude or include various source depending on the environment
|
|
the build is running in.
|
|
]]></description>
|
|
<version>3.0.0</version>
|
|
<superClass>FileSet</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>className</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
If the class with this name can <strong>not</strong> be
|
|
loaded, then the includes and excludes specified below
|
|
will be applied to the contents of the
|
|
<a href="#sourceDirectory">sourceDirectory</a>
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>property</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[the description]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>UnitTest</name>
|
|
<version>3.0.0</version>
|
|
<superClass>PatternSet</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>resources</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[the description]]></description>
|
|
<association>
|
|
<type>Resource</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Version</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
This element describes each of the previous versions of the
|
|
project. Each version is described by a <code>version</code>
|
|
element
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>name</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
The external version number under which this release was distributed. Examples include:
|
|
<code>1.0</code>,
|
|
<code>1.1-alpha1</code>,
|
|
<code>1.2-beta</code>,
|
|
<code>1.3.2</code> etc.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>tag</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
The name given in the version control system (e.g. cvs) used by the project for the source
|
|
code associated with this version of the project.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>id</name>
|
|
<version>3.0.0</version>
|
|
<description><![CDATA[
|
|
A unique identifier for a version. This ID is
|
|
used to specify the version that
|
|
<a href="/plugins/dist/index.html">
|
|
<code>maven:dist</code>
|
|
</a> builds.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>3.0.0</version>
|
|
<code><![CDATA[
|
|
public String toString()
|
|
{
|
|
return getId();
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
|
|
<class>
|
|
<name>Repository</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Repository contains the information needed
|
|
for establishing connections with remote repoistory
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
A unique identifier for a repository.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>name</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Human readable name of the repository
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The url of the repository
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>snapshotPolicy</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
The policy for downloading snapshots - can be "always", "daily" (default), "interval:XXX" (in minutes) or
|
|
"never".
|
|
</description>
|
|
<type>String</type>
|
|
<defaultValue>daily</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>layout</name>
|
|
<version>4.0.0</version>
|
|
<description>The type of layout this repository uses for locating and storing artifacts - can be "legacy" or
|
|
"default".</description>
|
|
<type>String</type>
|
|
<defaultValue>default</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>checksumPolicy</name>
|
|
<version>4.0.0</version>
|
|
<description>What to do when verification of an artifact checksum fails - warn, fail, etc. Valid values are
|
|
"fail" or "warn"</description>
|
|
<type>String</type>
|
|
<defaultValue>warn</defaultValue>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
public boolean equals( Object obj )
|
|
{
|
|
Repository other = ( Repository ) obj;
|
|
|
|
boolean retValue = false;
|
|
|
|
if ( id != null )
|
|
{
|
|
retValue = id.equals( other.id );
|
|
}
|
|
|
|
return retValue;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<!--@todo find better solution for management of site deployments -->
|
|
<class>
|
|
<name>Site</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Site contains the information needed
|
|
for deploying websites.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
A unique identifier for a deployment locataion.
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>name</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Human readable name of the deployment location
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>url</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The url of the location where website is deployed
|
|
]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
|
|
<class>
|
|
<name>ConfigurationContainer</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>inherited</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
<![CDATA[Whether this container's configuration should be propagated to child POMs.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>configuration</name>
|
|
<type>DOM</type>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
private boolean inheritanceApplied = true;
|
|
|
|
public void unsetInheritanceApplied()
|
|
{
|
|
this.inheritanceApplied = false;
|
|
}
|
|
|
|
public boolean isInheritanceApplied()
|
|
{
|
|
return inheritanceApplied;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>Plugin</name>
|
|
<version>4.0.0</version>
|
|
<superClass>ConfigurationContainer</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
<defaultValue>org.apache.maven.plugins</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
</field>
|
|
<field>
|
|
<name>version</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[The version of the plugin to be used.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>executions</name>
|
|
<version>4.0.0</version>
|
|
<description>Multiple specifications of a set of goals, each having (possibly) different
|
|
configuration</description>
|
|
<association>
|
|
<type>PluginExecution</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
<!-- TODO: this is deprecated -->
|
|
<field>
|
|
<name>goals</name>
|
|
<version>4.0.0</version>
|
|
<association>
|
|
<type>Goal</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
private Map executionMap = null;
|
|
|
|
public void flushExecutionMap()
|
|
{
|
|
this.executionMap = null;
|
|
}
|
|
|
|
public Map getExecutionsAsMap()
|
|
{
|
|
if ( executionMap == null )
|
|
{
|
|
executionMap = new HashMap();
|
|
if ( getExecutions() != null )
|
|
{
|
|
for ( Iterator i = getExecutions().iterator(); i.hasNext(); )
|
|
{
|
|
PluginExecution exec = (PluginExecution) i.next();
|
|
|
|
if ( executionMap.containsKey( exec.getId() ) )
|
|
{
|
|
throw new IllegalStateException( "You cannot have two plugin executions with the same (or missing) <id/> elements.\nOffending execution\n\nId: \'" + exec.getId() + "\'\nPlugin:\'" + getKey() + "\'\n\n" );
|
|
}
|
|
|
|
executionMap.put( exec.getId(), exec );
|
|
}
|
|
}
|
|
}
|
|
|
|
return executionMap;
|
|
}
|
|
|
|
public String getKey()
|
|
{
|
|
return constructKey( groupId, artifactId );
|
|
}
|
|
|
|
public static String constructKey( String groupId, String artifactId )
|
|
{
|
|
return groupId + ":" + artifactId;
|
|
}
|
|
|
|
/** @deprecated */
|
|
private Map goalMap = null;
|
|
/** @deprecated */
|
|
public void flushGoalMap()
|
|
{
|
|
this.goalMap = null;
|
|
}
|
|
|
|
/** @deprecated */
|
|
public Map getGoalsAsMap()
|
|
{
|
|
if ( goalMap == null )
|
|
{
|
|
goalMap = new HashMap();
|
|
if ( goals != null )
|
|
{
|
|
for ( Iterator i = goals.iterator(); i.hasNext(); )
|
|
{
|
|
Goal g = (Goal) i.next();
|
|
goalMap.put( g.getId(), g );
|
|
}
|
|
}
|
|
}
|
|
return goalMap;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>PluginExecution</name>
|
|
<version>4.0.0</version>
|
|
<superClass>ConfigurationContainer</superClass>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<type>String</type>
|
|
<defaultValue>default</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>phase</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>goals</name>
|
|
<version>4.0.0</version>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<!-- TODO: deprecated -->
|
|
<class>
|
|
<name>Goal</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>configuration</name>
|
|
<type>DOM</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>DependencyManagement</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
Section for management of default dependency information for use in a group of POMs.
|
|
</description>
|
|
<fields>
|
|
<field>
|
|
<name>dependencies</name>
|
|
<version>4.0.0</version>
|
|
<description>
|
|
The dependencies specified here are not validated until they
|
|
are referenced in a POM within the group. This allows the
|
|
specification of a "standard" version for a particular
|
|
dependency.
|
|
</description>
|
|
<association>
|
|
<type>Dependency</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>PluginManagement</name>
|
|
<version>4.0.0</version>
|
|
<superClass>PluginContainer</superClass>
|
|
<description>
|
|
Section for management of default plugin information for use in a group of POMs.
|
|
</description>
|
|
</class>
|
|
<class>
|
|
<name>Reporting</name>
|
|
<version>4.0.0</version>
|
|
<description>Section for management of reports and configuration</description>
|
|
<fields>
|
|
<field>
|
|
<name>outputDirectory</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<description>Where to store all of the generated reports</description>
|
|
</field>
|
|
<field>
|
|
<name>plugins</name>
|
|
<version>4.0.0</version>
|
|
<description>The report plugins) to use and their configuration</description>
|
|
<association>
|
|
<type>ReportPlugin</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
Map reportPluginMap;
|
|
|
|
public void flushReportPluginMap()
|
|
{
|
|
this.reportPluginMap = null;
|
|
}
|
|
|
|
public Map getReportPluginsAsMap()
|
|
{
|
|
if ( reportPluginMap == null )
|
|
{
|
|
reportPluginMap = new HashMap();
|
|
if ( getPlugins() != null )
|
|
{
|
|
for ( Iterator it = getPlugins().iterator(); it.hasNext(); )
|
|
{
|
|
ReportPlugin reportPlugin = (ReportPlugin) it.next();
|
|
reportPluginMap.put( reportPlugin.getKey(), reportPlugin );
|
|
}
|
|
}
|
|
}
|
|
return reportPluginMap;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<!-- Profile support -->
|
|
<class>
|
|
<name>Profile</name>
|
|
<superClass>ModelBase</superClass>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Modifications to the build process which is keyed on some
|
|
sort of environmental parameter.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<required>true</required>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<description>The ID of this build profile, for activation
|
|
purposes.</description>
|
|
</field>
|
|
<field>
|
|
<name>activation</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The conditional logic which will automatically
|
|
trigger the inclusion of this profile.]]></description>
|
|
<association>
|
|
<type>Activation</type>
|
|
</association>
|
|
</field>
|
|
<field xml.tagName="build">
|
|
<name>build</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[Information required to build the project.]]></description>
|
|
<association>
|
|
<type>BuildBase</type>
|
|
</association>
|
|
</field>
|
|
<field>
|
|
<name>properties</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Properties used to fill in plugin configuration when this profile is active
|
|
]]></description>
|
|
<type>Properties</type>
|
|
<association xml.mapStyle="inline">
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
// We don't want this to be parseable...it's sort of 'hidden'
|
|
// default source for this profile is in the pom itself.
|
|
private String source = "pom";
|
|
|
|
public void setSource( String source )
|
|
{
|
|
this.source = source;
|
|
}
|
|
|
|
public String getSource()
|
|
{
|
|
return source;
|
|
}
|
|
|
|
public String toString()
|
|
{
|
|
return "Profile {id: " + getId() + ", source: " + getSource() + "}";
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>Activation</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
The conditions within the build runtime environment which will trigger
|
|
the automatic inclusion of the parent build profile.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>jdk</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<description><![CDATA[
|
|
Specifies that this profile will be activated when a matching JDK is detected.
|
|
]]></description>
|
|
</field>
|
|
<field>
|
|
<name>property</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
Specifies that this profile will be activated when this System property is specified.
|
|
]]></description>
|
|
<association>
|
|
<type>ActivationProperty</type>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>ActivationProperty</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[
|
|
This is the property specification used to activate a profile. If the value field is empty,
|
|
then the existence of the named property will activate the profile, otherwise it does a case-sensitive
|
|
match against the property value as well.
|
|
]]></description>
|
|
<fields>
|
|
<field>
|
|
<name>name</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
<description>The name of the property to be used to activate a profile</description>
|
|
</field>
|
|
<field>
|
|
<name>value</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<description>The value of the property to be used to activate a profile</description>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<!-- /BuildProfile support -->
|
|
<class xml.tagName="plugin">
|
|
<name>ReportPlugin</name>
|
|
<version>4.0.0</version>
|
|
<fields>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
<defaultValue>org.apache.maven.plugins</defaultValue>
|
|
</field>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
</field>
|
|
<field>
|
|
<name>version</name>
|
|
<version>4.0.0</version>
|
|
<description><![CDATA[The version of the reporter to be used.]]></description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>inherited</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>configuration</name>
|
|
<version>4.0.0</version>
|
|
<type>DOM</type>
|
|
</field>
|
|
<field>
|
|
<name>reportSets</name>
|
|
<version>4.0.0</version>
|
|
<description>Multiple specifications of a set of reports, each having (possibly) different
|
|
configuration</description>
|
|
<association>
|
|
<type>ReportSet</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
private Map reportSetMap = null;
|
|
|
|
public void flushReportSetMap()
|
|
{
|
|
this.reportSetMap = null;
|
|
}
|
|
|
|
public Map getReportSetsAsMap()
|
|
{
|
|
if ( reportSetMap == null )
|
|
{
|
|
reportSetMap = new HashMap();
|
|
if ( getReportSets() != null )
|
|
{
|
|
for ( Iterator i = getReportSets().iterator(); i.hasNext(); )
|
|
{
|
|
ReportSet reportSet = (ReportSet) i.next();
|
|
reportSetMap.put( reportSet.getId(), reportSet );
|
|
}
|
|
}
|
|
}
|
|
|
|
return reportSetMap;
|
|
}
|
|
|
|
public String getKey()
|
|
{
|
|
return constructKey( groupId, artifactId );
|
|
}
|
|
|
|
public static String constructKey( String groupId, String artifactId )
|
|
{
|
|
return groupId + ":" + artifactId;
|
|
}
|
|
|
|
private boolean inheritanceApplied = true;
|
|
|
|
public void unsetInheritanceApplied()
|
|
{
|
|
this.inheritanceApplied = false;
|
|
}
|
|
|
|
public boolean isInheritanceApplied()
|
|
{
|
|
return inheritanceApplied;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>ReportSet</name>
|
|
<version>4.0.0</version>
|
|
<description>Represents a set of reports and configuration to be used to generate them.</description>
|
|
<fields>
|
|
<field>
|
|
<name>id</name>
|
|
<type>String</type>
|
|
<required>true</required>
|
|
<description>The unique id for this report set, to be used during POM inheritance.</description>
|
|
</field>
|
|
<field>
|
|
<name>configuration</name>
|
|
<version>4.0.0</version>
|
|
<type>DOM</type>
|
|
</field>
|
|
<field>
|
|
<name>inherited</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>reports</name>
|
|
<version>4.0.0</version>
|
|
<required>true</required>
|
|
<description><![CDATA[
|
|
The list of reports from this reporter/plugin which should be generated from this set
|
|
(this configuration)
|
|
]]></description>
|
|
<association>
|
|
<type>String</type>
|
|
<multiplicity>*</multiplicity>
|
|
</association>
|
|
</field>
|
|
</fields>
|
|
<codeSegments>
|
|
<codeSegment>
|
|
<version>4.0.0</version>
|
|
<code><![CDATA[
|
|
private boolean inheritanceApplied = true;
|
|
|
|
public void unsetInheritanceApplied()
|
|
{
|
|
this.inheritanceApplied = false;
|
|
}
|
|
|
|
public boolean isInheritanceApplied()
|
|
{
|
|
return inheritanceApplied;
|
|
}
|
|
]]></code>
|
|
</codeSegment>
|
|
</codeSegments>
|
|
</class>
|
|
<class>
|
|
<name>Prerequesites</name>
|
|
<version>4.0.0</version>
|
|
<description>Describes the prerequesites a project can have</description>
|
|
<fields>
|
|
<field>
|
|
<name>maven</name>
|
|
<version>4.0.0</version>
|
|
<type>String</type>
|
|
<defaultValue>2.0-beta-1-SNAPSHOT</defaultValue>
|
|
<description>The minimum version of Maven required</description>
|
|
<required>false</required>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
<class>
|
|
<name>Relocation</name>
|
|
<version>4.0.0</version>
|
|
<description>Describes where an artifact has moved to. If any of the values are omitted, it is assumed to be the
|
|
same as it was before.</description>
|
|
<fields>
|
|
<field>
|
|
<name>groupId</name>
|
|
<version>4.0.0</version>
|
|
<description>The group the artifact has moved to</description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>artifactId</name>
|
|
<version>4.0.0</version>
|
|
<description>The new artifact ID of the artifact</description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>version</name>
|
|
<version>4.0.0</version>
|
|
<description>The new version of the artifact</description>
|
|
<type>String</type>
|
|
</field>
|
|
<field>
|
|
<name>message</name>
|
|
<version>4.0.0</version>
|
|
<description>An additional message to show the user about the move, such as the reason.</description>
|
|
<type>String</type>
|
|
</field>
|
|
</fields>
|
|
</class>
|
|
</classes>
|
|
</model>
|
|
|