| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <!-- |
| | Improvements: |
| | |
| | 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. (see MNG-3626) |
| | |
| | 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 groupId/artifactId and sometimes version. It would be good to have them all extend one |
| | definition of these types |
| | |
| --> |
| <model xmlns="http://modello.codehaus.org/MODELLO/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.0.0 http://modello.codehaus.org/xsd/modello-1.0.0.xsd" |
| xml.namespace="http://maven.apache.org/POM/${version}" |
| xml.schemaLocation="http://maven.apache.org/xsd/maven-${version}.xsd"> |
| <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/xsd/maven-v3_0_0.xsd">http://maven.apache.org/xsd/maven-v3_0_0.xsd</a> for Maven 1.1.</li> |
| <li><a href="http://maven.apache.org/xsd/maven-4.0.0.xsd">http://maven.apache.org/xsd/maven-4.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 is the root of the descriptor. |
| The following table lists all of the possible child elements. |
| ]]> |
| </description> |
| <version>3.0.0+</version> |
| <fields> |
| |
| <!-- ====================================================================== --> |
| <!-- Model Version --> |
| <!-- ====================================================================== --> |
| |
| <field> |
| <name>pomVersion</name> |
| <version>3.0.0</version> |
| <required>true</required> |
| <type>String</type> |
| <description> |
| <![CDATA[ |
| Declares to which version of project descriptor this POM conforms. |
| The only valid value is <code>3</code>. |
| ]]> |
| </description> |
| </field> |
| <field> |
| <name>modelVersion</name> |
| <version>4.0.0</version> |
| <required>true</required> |
| <description>Declares to which version of project descriptor this POM conforms.</description> |
| <type>String</type> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Parent Model --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <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 <code>project.xml</code> file. For example, |
| <code><extend>${basedir}/../project.xml</extend></code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>parent</name> |
| <version>4.0.0</version> |
| <description>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 location |
| is given as a group ID, artifact ID and version.</description> |
| <association> |
| <type>Parent</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- groupId/artifactId/Version/Packaging --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>groupId</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description> |
| <![CDATA[ |
| A universally unique identifier for a project. It is normal to |
| use a fully-qualified package name to distinguish it from other |
| projects with a similar name (eg. <code>org.apache.maven</code>). |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>artifactId</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description>The identifier for this artifact that is unique within the group given by the |
| group ID. An artifact is something that is either produced or used by a project. |
| Examples of artifacts produced by Maven for a project include: JARs, source and binary |
| distributions, and WARs.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>id</name> |
| <version>3.0.0</version> |
| <required>true</required> |
| <description> |
| <![CDATA[ |
| <b>Deprecated</b>. When used, this sets both the <code>groupId</code> |
| and <code>artifactId</code> elements if they were previously empty. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>currentVersion</name> |
| <description>The current version of the artifact produced by this project.</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>The current version of the artifact produced by this project.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>versions</name> |
| <version>3.0.0</version> |
| <description>Contains information on previous versions of the project.</description> |
| <association> |
| <type>Version</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>packaging</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The type of artifact this project produces, for example <code>jar</code> |
| <code>war</code> |
| <code>ear</code> |
| <code>pom</code>. |
| Plugins can create their own packaging, and |
| therefore their own packaging types, |
| so this list does not contain all possible types. |
| ]]> |
| </description> |
| <type>String</type> |
| <defaultValue>jar</defaultValue> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Elements which describe a project --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>name</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description>The full name of the project.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>shortDescription</name> |
| <version>3.0.0</version> |
| <description>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>A detailed description of the project, used by Maven whenever it needs to |
| describe the project, such as on the web site. While this element can be specified as |
| CDATA to enable the use of HTML tags within the description, it is discouraged to allow |
| plain text representation. If you need to modify the index page of the generated web |
| site, you are able to specify your own instead of adjusting this text.</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>siteAddress</name> |
| <version>3.0.0</version> |
| <description>The hostname of the web server that hosts the project's web site. This is |
| used when the web site is deployed.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>siteDirectory</name> |
| <version>3.0.0</version> |
| <description>The directory on the web server where the public web site for this project |
| resides. This is used when the web site is deployed.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>inceptionYear</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description>The year of the project's inception, specified with 4 digits. This value is |
| used when generating copyright notices as well as being informational.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>logo</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| The URL of 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>organization</name> |
| <version>3.0.0+</version> |
| <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).</description> |
| <alias>organisation</alias> |
| <association> |
| <type>Organization</type> |
| </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. |
| Projects should only list the license(s) that applies to the project |
| and not the licenses that apply to dependencies. |
| If multiple licenses are listed, it is assumed that the user can select |
| any of them, not that they must accept all. |
| ]]> |
| </description> |
| <association> |
| <type>License</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>mailingLists</name> |
| <version>3.0.0+</version> |
| <description>Contains information about a project's mailing lists.</description> |
| <association> |
| <type>MailingList</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>developers</name> |
| <version>3.0.0+</version> |
| <description>Describes the committers of a project.</description> |
| <association> |
| <type>Developer</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>contributors</name> |
| <version>3.0.0+</version> |
| <description>Describes the contributors to a project that are not yet committers.</description> |
| <association> |
| <type>Contributor</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Issue Tracking --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>issueTrackingUrl</name> |
| <version>3.0.0</version> |
| <description>The URL of the project's issue tracking system.</description> |
| <type>String</type> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>issueManagement</name> |
| <version>4.0.0</version> |
| <description>The project's issue management system information.</description> |
| <association> |
| <type>IssueManagement</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- SCM --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>branches</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| Contains information on SCM branches of the project. |
| ]]> |
| </description> |
| <association> |
| <type>Branch</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>repository</name> |
| <version>3.0.0</version> |
| <description>Specification for the SCM used by the project, such as CVS, Subversion, etc.</description> |
| <association> |
| <type>Repository</type> |
| </association> |
| </field> |
| <field> |
| <name>scm</name> |
| <version>4.0.0</version> |
| <description>Specification for the SCM used by the project, such as CVS, Subversion, etc.</description> |
| <association> |
| <type>Scm</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- CI Management --> |
| <!-- ====================================================================== --> |
| |
| <field> |
| <name>gumpRepositoryId</name> |
| <version>3.0.0</version> |
| <description>This is the repository identifier in Gump that this project is part of.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>ciManagement</name> |
| <version>4.0.0</version> |
| <description>The project's continuous integration information.</description> |
| <association> |
| <type>CiManagement</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Distribution Management --> |
| <!-- ====================================================================== --> |
| |
| <field> |
| <name>distributionSite</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| The server where the final distributions will be published. This is used when the |
| distributions are deployed. 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>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>distributionDirectory</name> |
| <version>3.0.0</version> |
| <description>The directory on the web server where the final distributions will be |
| published. This is used when the distributions are deployed.</description> |
| <type>String</type> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Specific version 3 --> |
| <!-- ====================================================================== --> |
| |
| <field> |
| <name>packageGroups</name> |
| <version>3.0.0</version> |
| <description>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>properties</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| Project properties that will be used by various plugins. |
| The format is <code><name>value</name></code>. |
| ]]> |
| </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>The Java package name of the project. This value is used when generating |
| JavaDoc.</description> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Build prerequisites --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>prerequisites</name> |
| <version>4.0.0</version> |
| <description>Describes the prerequisites in the build environment for this project.</description> |
| <association> |
| <type>Prerequisites</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Build --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>build</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description>Information required to build the project.</description> |
| <association> |
| <type>Build</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Profiles --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank"> |
| <name>profiles</name> |
| <version>4.0.0</version> |
| <description>A 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[ |
| /** |
| * @return the model id as <code>groupId:artifactId:packaging:version</code> |
| */ |
| 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> |
| <description> |
| <![CDATA[ |
| Base class for the <code>Model</code> and the <code>Profile</code> objects. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>distributionManagement</name> |
| <version>4.0.0</version> |
| <description>Distribution information for a project that enables deployment of the site |
| and artifacts to remote web servers and repositories respectively.</description> |
| <association> |
| <type>DistributionManagement</type> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>modules</name> |
| <version>4.0.0</version> |
| <description>The modules (sometimes called subprojects) to build as a part of this |
| project. Each module listed is a relative path to the directory containing the module.</description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>repositories</name> |
| <version>4.0.0</version> |
| <description>The lists of the remote repositories for discovering dependencies and |
| extensions.</description> |
| <association> |
| <type>Repository</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>pluginRepositories</name> |
| <version>4.0.0</version> |
| <description>The lists of the remote repositories for discovering plugins for builds and |
| reports.</description> |
| <association> |
| <type>Repository</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>dependencies</name> |
| <version>3.0.0+</version> |
| <description> |
| <![CDATA[ |
| This element describes all of the dependencies associated with a |
| project. |
| These dependencies are used to construct a classpath for your |
| project during the build process. They are automatically downloaded from the |
| repositories defined in this project. |
| See <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the |
| dependency mechanism</a> for more information. |
| ]]> |
| </description> |
| <association> |
| <type>Dependency</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>reports</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| <b>Deprecated</b>. Now ignored by Maven. |
| ]]> |
| </description> |
| <type>DOM</type> |
| </field> |
| <field> |
| <name>reporting</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| This element includes the specification of report plugins to use |
| to generate the reports on the Maven-generated site. |
| These reports will be run when a user executes <code>mvn site</code>. |
| All of the reports will be included in the navigation bar for browsing. |
| ]]> |
| </description> |
| <association> |
| <type>Reporting</type> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>dependencyManagement</name> |
| <version>4.0.0</version> |
| <required>false</required> |
| <description>Default dependency information for projects that inherit from this one. The |
| dependencies in this section are not immediately resolved. Instead, when a POM derived |
| from this one declares a dependency described by a matching groupId and artifactId, the |
| version and other values from this section are used for that dependency if they were not |
| already specified.</description> |
| <association> |
| <type>DependencyManagement</type> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <name>properties</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| Properties that can be used throughout the POM as a substitution, and |
| are used as filters in resources if enabled. |
| The format is <code><name>value</name></code>. |
| ]]> |
| </description> |
| <type>Properties</type> |
| <association xml.mapStyle="inline"> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>Branch</name> |
| <version>3.0.0</version> |
| <description>Contains information on the SCM branches of the project.</description> |
| <fields> |
| <field> |
| <name>tag</name> |
| <version>3.0.0</version> |
| <required>true</required> |
| <description>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> |
| <description>Contains the plugins informations for the project.</description> |
| <fields> |
| <field> |
| <name>plugins</name> |
| <version>4.0.0</version> |
| <description>The list of plugins to use.</description> |
| <association> |
| <type>Plugin</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| java.util.Map pluginMap; |
| |
| /** |
| * Reset the <code>pluginsMap</code> field to <code>null</code> |
| */ |
| public void flushPluginMap() |
| { |
| this.pluginMap = null; |
| } |
| |
| /** |
| * @return a Map of plugins field with <code>Plugins#getKey()</code> as key |
| * @see org.apache.maven.model.Plugin#getKey() |
| */ |
| public java.util.Map getPluginsAsMap() |
| { |
| if ( pluginMap == null ) |
| { |
| pluginMap = new java.util.LinkedHashMap(); |
| if ( plugins != null ) |
| { |
| for ( java.util.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> |
| <description>Contains the plugins management informations for the project.</description> |
| <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>Default plugin information to be made available for reference by projects |
| derived from this one. This plugin configuration will not be resolved 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> |
| <description>Generic informations for a build.</description> |
| <fields> |
| <field> |
| <name>defaultGoal</name> |
| <version>3.0.0+</version> |
| <description>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>This element describes all of the classpath resources such as properties |
| files associated with a project. These resources are often included in the final |
| package.</description> |
| <association> |
| <type>Resource</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>testResources</name> |
| <version>4.0.0</version> |
| <description>This element describes all of the classpath resources such as properties |
| files associated with a project's unit tests.</description> |
| <association> |
| <type>Resource</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>directory</name> |
| <version>4.0.0</version> |
| <description>The directory where all files generated by the build are placed.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>finalName</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The filename (excluding the extension, and with no path information) that |
| the produced artifact will be called. |
| The default value is <code>${artifactId}-${version}</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>filters</name> |
| <version>4.0.0</version> |
| <description>The list of filter properties files that are used when filtering is enabled.</description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>Build</name> |
| <version>3.0.0+</version> |
| <superClass>BuildBase</superClass> |
| <description> |
| <![CDATA[ |
| The <code><build></code> element contains informations required to build the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>nagEmailAddress</name> |
| <version>3.0.0</version> |
| <description>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.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>sourceDirectory</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description>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>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>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 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>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 path given is relative to the project descriptor.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>aspectSourceDirectory</name> |
| <version>3.0.0</version> |
| <description>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. 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 is <b>deprecated</b> and should no longer be used. |
| Initially it was used by the first Cactus plugin. Now |
| the location of the Cactus test sources is defined |
| through a plugin property. See the Cactus plugin |
| <a href="http://jakarta.apache.org/cactus/integration/maven/properties.html">properties</a> |
| page. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>sourceModifications</name> |
| <version>3.0.0</version> |
| <required>true</required> |
| <description>This element describes all of the sourceModifications associated with a |
| project. 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>This element specifies unit tests associated with the project.</description> |
| <defaultValue>new UnitTest()</defaultValue> |
| <association> |
| <type>UnitTest</type> |
| </association> |
| </field> |
| <field> |
| <name>outputDirectory</name> |
| <version>4.0.0</version> |
| <description>The directory where compiled application classes are placed.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>testOutputDirectory</name> |
| <version>4.0.0</version> |
| <description>The directory where compiled test classes are placed.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>extensions</name> |
| <version>4.0.0</version> |
| <description>A set of build extensions to use from this project.</description> |
| <association> |
| <type>Extension</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>CiManagement</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The <code><CiManagement></code> element contains informations required to the |
| continuous integration system of the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>system</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The name of the continuous integration system, e.g. <code>continuum</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>4.0.0</version> |
| <description>URL for the continuous integration system used by the project if it has a web |
| interface.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>notifiers</name> |
| <version>4.0.0</version> |
| <description>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> |
| <field> |
| <name>sendOnError</name> |
| <version>4.0.0</version> |
| <defaultValue>true</defaultValue> |
| <type>boolean</type> |
| <description>Whether to send notifications on error.</description> |
| </field> |
| <field> |
| <name>sendOnFailure</name> |
| <version>4.0.0</version> |
| <defaultValue>true</defaultValue> |
| <type>boolean</type> |
| <description>Whether to send notifications on failure.</description> |
| </field> |
| <field> |
| <name>sendOnSuccess</name> |
| <version>4.0.0</version> |
| <defaultValue>true</defaultValue> |
| <type>boolean</type> |
| <description>Whether to send notifications on success.</description> |
| </field> |
| <field> |
| <name>sendOnWarning</name> |
| <version>4.0.0</version> |
| <defaultValue>true</defaultValue> |
| <type>boolean</type> |
| <description>Whether to send notifications on warning.</description> |
| </field> |
| <!-- TODO: Remove it after continuum alpha-3 release --> |
| <field> |
| <name>address</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description> |
| <![CDATA[ |
| <b>Deprecated</b>. 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>The full name of the contributor.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>email</name> |
| <version>3.0.0+</version> |
| <description>The email address of the contributor.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>3.0.0+</version> |
| <description>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> |
| <alias>organisation</alias> |
| <version>3.0.0+</version> |
| <description>The organization to which the contributor belongs.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>organizationUrl</name> |
| <alias>organisationUrl</alias> |
| <version>3.0.0+</version> |
| <description>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. This can also be used to |
| describe the contribution. |
| ]]> |
| </description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>timezone</name> |
| <version>3.0.0+</version> |
| <description>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>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> |
| <description> |
| <![CDATA[ |
| The <code><dependency></code> element contains information about a dependency |
| of the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>3.0.0</version> |
| <required>true</required> |
| <description> |
| <![CDATA[ |
| <b>Deprecated</b>. Please use <code>groupId</code> and |
| <code>artifactId</code> together instead. |
| ]]> |
| </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>org.apache.maven</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>maven-artifact</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>. In Maven 2, this can also be |
| specified as a range of versions. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>3.0.0</version> |
| <description>This url will be provided to the user if the jar file cannot be downloaded |
| from the central repository.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>jar</name> |
| <version>3.0.0</version> |
| <description>Literal name of the artifact in the repository. 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>. While it |
| usually represents the extension on the filename of the dependency, |
| that is not always the case. |
| Some examples are <code>jar</code>, <code>war</code>, and <code>plugin</code>. |
| A dependency of type <code>plugin</code> is loaded as a Maven plugin and |
| not added to the project build classpath. |
| ]]> |
| </description> |
| <type>String</type> |
| <defaultValue>jar</defaultValue> |
| </field> |
| <field> |
| <name>type</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The type of dependency. This defaults to <code>jar</code>. While it |
| usually represents the extension on the filename of the dependency, |
| that is not always the case. A type can be mapped to a different |
| extension and a classifier. |
| The type often correspongs to the packaging used, though this is also |
| not always the case. |
| Some examples are <code>jar</code>, <code>war</code>, <code>ejb-client</code> |
| and <code>test-jar</code>. |
| New types can be defined by plugins that set |
| <code>extensions</code> to <code>true</code>, so this is not a complete list. |
| ]]> |
| </description> |
| <type>String</type> |
| <defaultValue>jar</defaultValue> |
| </field> |
| <field> |
| <name>classifier</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The classifier of the dependency. This allows distinguishing two artifacts |
| that belong to the same POM but were built differently, and is appended to |
| the filename after the version. For example, <code>jdk14</code> and <code>jdk15</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| <required>false</required> |
| </field> |
| <field> |
| <name>properties</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| Properties about the dependency. Various plugins allow you to |
| mark dependencies with properties. For example the war plugin looks for a |
| <code>war.bundle</code> property, and if found will include the |
| dependency in <code>WEB-INF/lib</code>. |
| ]]> |
| </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 - <code>compile</code>, <code>runtime</code>, |
| <code>test</code>, <code>system</code>, and <code>provided</code>. Used to |
| calculate the various classpaths used for compilation, testing, and so on. |
| It also assists in determining which artifacts to include in a distribution of |
| this project. For more information, see |
| <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the |
| dependency mechanism</a>. |
| ]]> |
| </description> |
| <type>String</type> |
| <!-- This default has to be enforced at the maven-artifact layer, to allow |
| | injection of defaults from <dependencyManagement/>. |
| | TODO: how can we document it? |
| |--> |
| <!-- defaultValue>compile</defaultValue --> |
| </field> |
| <field> |
| <name>systemPath</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| FOR SYSTEM SCOPE ONLY. Note that use of this property is <b>discouraged</b> |
| and may be replaced in later versions. This specifies the path on the filesystem |
| for this dependency. |
| Requires an absolute path for the value, not relative. |
| Use a property that gives the machine specific absolute path, |
| e.g. <code>${java.home}</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </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> |
| <field> |
| <name>optional</name> |
| <version>4.0.0</version> |
| <description>Indicates the dependency is optional for use of this library. While the |
| version of the dependency will be taken into account for dependency calculation if the |
| library is used elsewhere, it will not be passed on transitively.</description> |
| <type>boolean</type> |
| <defaultValue>false</defaultValue> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>3.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return groupId + "/" + type + "s:" + artifactId + "-" + version; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Dependency {groupId=" + groupId + ", artifactId=" + artifactId + ", version=" + version + ", type=" + type + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @return the management key as <code>groupId:artifactId:type</code> |
| */ |
| public String getManagementKey() |
| { |
| return groupId + ":" + artifactId + ":" + type + ( classifier != null ? ":" + classifier : "" ); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>3.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @return the key as <code>id:type</code> |
| */ |
| public String getKey() |
| { |
| return getId() + ":" + getType(); |
| } |
| |
| /** |
| * @return the groupId as artifact directory |
| */ |
| public String getArtifactDirectory() |
| { |
| return getGroupId(); |
| } |
| |
| /** |
| * @return the artifact name as <code>artifactId-version.extension</code> if <jar/> not set |
| */ |
| 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(); |
| } |
| |
| String artifact; |
| |
| if ("ejb-client".equals(getType())) { |
| artifact = getArtifactId() + "-" + getVersion() + "-client." + getExtension(); |
| } else { |
| artifact = getArtifactId() + "-" + getVersion() + "." + getExtension(); |
| } |
| |
| return artifact; |
| } |
| |
| public String getTypeDirectory() |
| { |
| String path; |
| if (getType().equals("ejb-client")) { |
| path = "ejbs"; |
| } else { |
| path = getType() + "s"; |
| } |
| |
| return path; |
| } |
| |
| public String getExtension() |
| { |
| if ("ejb".equals(getType()) || "ejb-client".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()) || "ejb-client".equals(getType()) || "sar".equals(getType())); |
| } |
| |
| public boolean isPlugin() |
| { |
| return ("plugin".equals(getType())); |
| } |
| |
| public String getProperty( String property ) |
| { |
| return getProperties().getProperty( property ); |
| } |
| |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| 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() ); |
| } |
| |
| /** |
| * @see java.lang.Object#hashCode() |
| */ |
| public int hashCode() |
| { |
| return getId().hashCode(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <superClass>Contributor</superClass> |
| <name>Developer</name> |
| <description>Information about one of the committers on this project.</description> |
| <version>3.0.0+</version> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>3.0.0+</version> |
| <description>The unique ID of the developer in the SCM.</description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>Exclusion</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The <code><exclusion></code> element contains informations required to exclude |
| an artifact to the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>artifactId</name> |
| <version>4.0.0</version> |
| <description>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>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 issue tracking (or bug tracking) system used to manage this |
| project.</description> |
| <version>4.0.0</version> |
| <fields> |
| <field> |
| <name>system</name> |
| <version>4.0.0</version> |
| <description>The name of the issue management system, e.g. Bugzilla</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>4.0.0</version> |
| <description>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>This elements describes all that pertains to distribution for a project. It is |
| primarily used for deployment of artifacts and the site produced by the build.</description> |
| <fields> |
| <field> |
| <name>repository</name> |
| <version>4.0.0</version> |
| <description>Information needed to deploy the artifacts generated by the project to a |
| remote repository.</description> |
| <association> |
| <type>DeploymentRepository</type> |
| </association> |
| </field> |
| <field> |
| <name>snapshotRepository</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| Where to deploy snapshots of artifacts to. If not given, it defaults to the |
| <code>repository</code> element. |
| ]]> |
| </description> |
| <association> |
| <type>DeploymentRepository</type> |
| </association> |
| </field> |
| <field> |
| <name>site</name> |
| <description>Information needed for deploying the web site 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>. |
| This is given to assist in locating artifacts that are not in the repository due to |
| licensing restrictions. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>relocation</name> |
| <version>4.0.0</version> |
| <description>Relocation information of the artifact if it has been moved to a new group ID |
| and/or artifact ID.</description> |
| <association> |
| <type>Relocation</type> |
| </association> |
| </field> |
| <field> |
| <name>status</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| Gives the status of this artifact in the remote repository. |
| This must not be set in your local project, as it is updated by |
| tools placing it in the reposiory. Valid values are: <code>none</code> (default), |
| <code>converted</code> (repository manager converted this from an Maven 1 POM), |
| <code>partner</code> |
| (directly synced from a partner Maven 2 repository), <code>deployed</code> (was deployed from a Maven 2 |
| instance), <code>verified</code> (has been hand verified as correct and final). |
| ]]> |
| </description> |
| <required>false</required> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>License</name> |
| <description>Describes the licenses for this project. This is used to generate the license |
| page of the project's web site, as well as being taken into consideration in other reporting |
| and validation. 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>The full legal name of the license.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>3.0.0+</version> |
| <description>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>This element describes all of the mailing lists associated with a project. The |
| auto-generated site 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>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>The link to alternate 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 that produces this project.</description> |
| <version>3.0.0+</version> |
| <fields> |
| <field> |
| <name>name</name> |
| <version>3.0.0+</version> |
| <description>The full name of the organization.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>3.0.0+</version> |
| <description>The URL to the organization's home page.</description> |
| <type>String</type> |
| </field> |
| <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> |
| <description>A JavaDoc package group.</description> |
| <fields> |
| <field> |
| <name>title</name> |
| <version>3.0.0</version> |
| <description>The title to use for the package group.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>packages</name> |
| <version>3.0.0</version> |
| <description>The packages in the group</description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>PatternSet</name> |
| <version>3.0.0+</version> |
| <description>Definition of include or exclude patterns.</description> |
| <fields> |
| <field> |
| <name>includes</name> |
| <version>3.0.0+</version> |
| <description> |
| <![CDATA[ |
| A list of patterns to include, e.g. <code>**/*.xml</code>. |
| ]]> |
| </description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>excludes</name> |
| <version>3.0.0+</version> |
| <description> |
| <![CDATA[ |
| A list of patterns to exclude, e.g. <code>**/*.xml</code> |
| ]]> |
| </description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| StringBuffer sb = new StringBuffer(); |
| |
| sb.append("PatternSet [includes: {"); |
| for (java.util.Iterator i = getIncludes().iterator(); i.hasNext(); ) |
| { |
| String str = (String) i.next(); |
| sb.append(str).append(", "); |
| } |
| if (sb.substring(sb.length() - 2).equals(", ")) sb.delete(sb.length() - 2, sb.length()); |
| |
| sb.append("}, excludes: {"); |
| for (java.util.Iterator i = getExcludes().iterator(); i.hasNext(); ) |
| { |
| String str = (String) i.next(); |
| sb.append(str).append(", "); |
| } |
| if (sb.substring(sb.length() - 2).equals(", ")) sb.delete(sb.length() - 2, sb.length()); |
| |
| sb.append("}]"); |
| return sb.toString(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Parent</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The <code><parent></code> element contains informations required to the parent project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>artifactId</name> |
| <version>4.0.0</version> |
| <description>The artifact id of the parent project to inherit from.</description> |
| <required>true</required> |
| <type>String</type> |
| </field> |
| <field> |
| <name>groupId</name> |
| <version>4.0.0</version> |
| <description>The group id of the parent project to inherit from.</description> |
| <required>true</required> |
| <type>String</type> |
| </field> |
| <field> |
| <name>version</name> |
| <version>4.0.0</version> |
| <description>The version of the parent project to inherit.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>relativePath</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The relative path of the parent <code>pom.xml</code> file within the check out. |
| The default value is <code>../pom.xml</code>. |
| Maven looks for the parent pom first in the reactor of currently building projects, then in this location on |
| the filesystem, then the local repository, and lastly in the remote repo. |
| <code>relativePath</code> allows you to select a different location, |
| for example when your structure is flat, or deeper without an intermediate parent pom. |
| However, the group ID, artifact ID and version are still required, |
| and must match the file in the location given or it will revert to the repository for the POM. |
| This feature is only for enhancing the development in a local checkout of that project. |
| ]]> |
| </description> |
| <type>String</type> |
| <defaultValue>../pom.xml</defaultValue> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @return the id as <code>groupId:artifactId:version</code> |
| */ |
| public String getId() |
| { |
| StringBuffer id = new StringBuffer(); |
| |
| id.append( getGroupId() ); |
| id.append( ":" ); |
| id.append( getArtifactId() ); |
| id.append( ":" ); |
| id.append( "pom" ); |
| // id.append( getPackaging() ); |
| id.append( ":" ); |
| id.append( getVersion() ); |
| |
| return id.toString(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| |
| </class> |
| <class> |
| <name>Repository</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| The <code><repository></code> element contains informations required to a repository |
| used by the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>connection</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| The source control management system URL |
| that describes the repository and how to connect to the |
| repository. For more information, see the |
| <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a> |
| and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>. |
| This connection is read-only. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>developerConnection</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| Just like <code>connection</code>, 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>The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.</description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>Scm</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The <code><scm></code> element contains informations required to the SCM |
| (Source Control Management) of the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>connection</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The source control management system URL |
| that describes the repository and how to connect to the |
| repository. For more information, see the |
| <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a> |
| and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>. |
| This connection is read-only. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>developerConnection</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| Just like <code>connection</code>, 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>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>The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.</description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>FileSet</name> |
| <version>3.0.0+</version> |
| <superClass>PatternSet</superClass> |
| <description>A PatternSet for files.</description> |
| <fields> |
| <field> |
| <name>directory</name> |
| <version>3.0.0+</version> |
| <description>Describe the directory where the resources are stored. The path is relative |
| to the POM.</description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "FileSet {directory: " + getDirectory() + ", " + super.toString() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Resource</name> |
| <description>This element describes all of the classpath resources associated with a project |
| or unit tests.</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. The path is relative to the target/classes |
| directory (i.e. <code>${project.build.outputDirectory}</code>). |
| For example, if you want that resource to appear in a specific package |
| (<code>org.apache.maven.messages</code>), you must specify this |
| element with this value: <code>org/apache/maven/messages</code>. |
| This is not required if you simply put the resources in that directory |
| structure at the source, however. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>filtering</name> |
| <version>3.0.0+</version> |
| <description> |
| <![CDATA[ |
| Whether resources are filtered to replace tokens with parameterised values or not. |
| The values are taken from the <code>properties</code> element and from the |
| properties in the files listed in the <code>filters</code> element. |
| ]]> |
| </description> |
| <type>boolean</type> |
| <defaultValue>false</defaultValue> |
| </field> |
| <field> |
| <name>mergeId</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| FOR INTERNAL USE ONLY. This is a unique identifier assigned to each |
| resource to allow Maven to merge changes to this resource that take |
| place during the execution of a plugin. This field must be managed |
| by the generated parser and formatter classes in order to allow it |
| to survive model interpolation. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| private static int mergeIdCounter = 0; |
| |
| public void initMergeId() |
| { |
| if ( getMergeId() == null ) |
| { |
| setMergeId( "resource-" + (mergeIdCounter++) ); |
| } |
| } |
| |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Resource {targetPath: " + getTargetPath() + ", filtering: " + isFiltering() + ", " + super.toString() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>SourceModification</name> |
| <description>This element describes all of the source modifications associated with a project. |
| 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 <b>not</b> be |
| loaded, then the includes and excludes specified below |
| will be applied to the contents of the <code>sourceDirectory</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>property</name> |
| <version>3.0.0</version> |
| <description> |
| <![CDATA[ |
| If the property with this name is <b>not</b> set, |
| then the includes and excludes specified below |
| will be applied to the contents of the <code>sourceDirectory</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>UnitTest</name> |
| <version>3.0.0</version> |
| <superClass>PatternSet</superClass> |
| <description>A PatternSet for unit tests.</description> |
| <fields> |
| <field> |
| <name>resources</name> |
| <version>3.0.0</version> |
| <description>The classpath resources to use when executing the unit tests.</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>The name given in the SCM (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>A unique identifier for a version. This is usually identical to the name.</description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>3.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return getId(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| |
| <class> |
| <name>RepositoryBase</name> |
| <version>4.0.0</version> |
| <description>A repository contains the information needed for establishing connections with |
| remote repository.</description> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>4.0.0</version> |
| <required>true</required> |
| <identifier>true</identifier> |
| <description> |
| <![CDATA[ |
| A unique identifier for a repository. This is used to match the repository |
| to configuration in the <code>settings.xml</code> file, for example. Furthermore, the identifier is |
| used during POM inheritance and profile injection to detect repositories that should be merged. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>name</name> |
| <version>4.0.0</version> |
| <description>Human readable name of the repository.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>url</name> |
| <version>4.0.0</version> |
| <required>true</required> |
| <description> |
| <![CDATA[ |
| The url of the repository, in the form <code>protocol://hostname/path</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>layout</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The type of layout this repository uses for locating and storing artifacts - |
| can be <code>legacy</code> or <code>default</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| <defaultValue>default</defaultValue> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>Repository</name> |
| <superClass>RepositoryBase</superClass> |
| <version>4.0.0</version> |
| <description>A repository contains the information needed for establishing connections with |
| remote repository.</description> |
| <fields> |
| <field> |
| <name>releases</name> |
| <version>4.0.0</version> |
| <description>How to handle downloading of releases from this repository.</description> |
| <association> |
| <type>RepositoryPolicy</type> |
| </association> |
| </field> |
| <field> |
| <name>snapshots</name> |
| <version>4.0.0</version> |
| <description>How to handle downloading of snapshots from this repository.</description> |
| <association> |
| <type>RepositoryPolicy</type> |
| </association> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>DeploymentRepository</name> |
| <superClass>RepositoryBase</superClass> |
| <version>4.0.0</version> |
| <description>Repository contains the information needed for deploying to the remote |
| repository.</description> |
| <fields> |
| <field> |
| <name>uniqueVersion</name> |
| <description>Whether to assign snapshots a unique version comprised of the timestamp and |
| build number, or to use the same version each time</description> |
| <type>boolean</type> |
| <defaultValue>true</defaultValue> |
| <version>4.0.0</version> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>RepositoryPolicy</name> |
| <version>4.0.0</version> |
| <description>Download policy.</description> |
| <fields> |
| <field> |
| <name>enabled</name> |
| <version>4.0.0</version> |
| <description>Whether to use this repository for downloading this type of artifact.</description> |
| <type>boolean</type> |
| <defaultValue>true</defaultValue> |
| </field> |
| <field> |
| <name>updatePolicy</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The frequency for downloading updates - can be |
| <code>always,</code> |
| <code>daily</code> |
| (default), |
| <code>interval:XXX</code> |
| (in minutes) or |
| <code>never</code> |
| (only if it doesn't exist locally). |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>checksumPolicy</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| What to do when verification of an artifact checksum fails. Valid values are |
| <code>ignore</code> |
| , |
| <code>fail</code> |
| or |
| <code>warn</code> |
| (the default). |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| |
| <!--@todo find better solution for management of site deployments --> |
| <class> |
| <name>Site</name> |
| <version>4.0.0</version> |
| <description>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 location. This is used to match the |
| site to configuration in the <code>settings.xml</code> file, for example. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>name</name> |
| <version>4.0.0</version> |
| <description>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, in the form <code>protocol://hostname/path</code>. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>ConfigurationContainer</name> |
| <version>4.0.0</version> |
| <description>Contains the configuration information of the container like Plugin.</description> |
| <fields> |
| <field> |
| <name>inherited</name> |
| <version>4.0.0</version> |
| <description>Whether any configuration should be propagated to child POMs.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <description>The configuration as DOM object.</description> |
| <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> |
| <description> |
| <![CDATA[ |
| The <code><plugin></code> element contains informations required for a plugin. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>groupId</name> |
| <description>The group ID of the plugin in the repository.</description> |
| <version>4.0.0</version> |
| <type>String</type> |
| <required>true</required> |
| <defaultValue>org.apache.maven.plugins</defaultValue> |
| </field> |
| <field> |
| <name>artifactId</name> |
| <description>The artifact ID of the plugin in the repository.</description> |
| <version>4.0.0</version> |
| <type>String</type> |
| <required>true</required> |
| </field> |
| <field> |
| <name>version</name> |
| <version>4.0.0</version> |
| <description>The version (or valid range of versions) of the plugin to be used.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>extensions</name> |
| <version>4.0.0</version> |
| <type>boolean</type> |
| <description>Whether to load Maven extensions (such as packaging and type handlers) from |
| this plugin. For performance reasons, this should only be enabled when necessary.</description> |
| <defaultValue>false</defaultValue> |
| </field> |
| <field> |
| <name>executions</name> |
| <version>4.0.0</version> |
| <description>Multiple specifications of a set of goals to execute during the build |
| lifecycle, each having (possibly) a different configuration.</description> |
| <association> |
| <type>PluginExecution</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>dependencies</name> |
| <description>Additional dependencies that this project needs to introduce to the plugin's |
| classloader.</description> |
| <version>4.0.0</version> |
| <association> |
| <type>Dependency</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>goals</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| <b>Deprecated</b>. Unused by Maven. |
| ]]> |
| </description> |
| <type>DOM</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| private java.util.Map executionMap = null; |
| |
| /** |
| * Reset the <code>executionMap</code> field to <code>null</code> |
| */ |
| public void flushExecutionMap() |
| { |
| this.executionMap = null; |
| } |
| |
| /** |
| * @return a Map of executions field with <code>PluginExecution#getId()</code> as key |
| * @see org.apache.maven.model.PluginExecution#getId() |
| */ |
| public java.util.Map getExecutionsAsMap() |
| { |
| if ( executionMap == null ) |
| { |
| executionMap = new java.util.LinkedHashMap(); |
| if ( getExecutions() != null ) |
| { |
| for ( java.util.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; |
| } |
| |
| private String key; |
| |
| /** |
| * @return the key of the plugin, ie <code>groupId:artifactId</code> |
| */ |
| public String getKey() |
| { |
| if ( key == null ) |
| { |
| key = constructKey( groupId, artifactId ).intern(); |
| } |
| return key; |
| } |
| |
| /** |
| * @param groupId |
| * @param artifactId |
| * @return the key of the plugin, ie <code>groupId:artifactId</code> |
| */ |
| public static String constructKey( String groupId, String artifactId ) |
| { |
| return groupId + ":" + artifactId; |
| } |
| |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals( Object other ) |
| { |
| if ( this == other ) |
| { |
| return true; |
| } |
| |
| if ( other instanceof Plugin ) |
| { |
| Plugin otherPlugin = (Plugin) other; |
| |
| return getKey().equals( otherPlugin.getKey() ); |
| } |
| |
| return false; |
| } |
| |
| /** |
| * @see java.lang.Object#hashCode() |
| */ |
| public int hashCode() |
| { |
| return getKey().hashCode(); |
| } |
| |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Plugin [" + getKey() + "]"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>PluginExecution</name> |
| <version>4.0.0</version> |
| <superClass>ConfigurationContainer</superClass> |
| <description> |
| <![CDATA[ |
| The <code><execution></code> element contains informations required for the |
| execution of a plugin. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>4.0.0</version> |
| <required>true</required> |
| <type>String</type> |
| <defaultValue>default</defaultValue> |
| <description>The identifier of this execution for labelling the goals during the build, |
| and for matching executions to merge during inheritance and profile injection.</description> |
| </field> |
| <field> |
| <name>phase</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>The build lifecycle phase to bind the goals in this execution to. If omitted, |
| the goals will be bound to the default phase specified in their metadata. </description> |
| </field> |
| <field> |
| <name>goals</name> |
| <version>4.0.0</version> |
| <description>The goals to execute with the given configuration.</description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| public static final String DEFAULT_EXECUTION_ID = "default"; |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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 used 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 their configuration.</description> |
| <fields> |
| <field xml.tagName="excludeDefaults"> |
| <name>excludeDefaultsValue</name> |
| <version>4.0.0</version> |
| <type>Boolean</type> |
| <description>If true, then the default reports are not included in the site generation. |
| This includes the reports in the "Project Info" menu.</description> |
| </field> |
| <field> |
| <name>outputDirectory</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description> |
| <![CDATA[ |
| Where to store all of the generated reports. The default is |
| <code>${project.build.directory}/site</code> |
| . |
| ]]> |
| </description> |
| <!-- TODO: why isn't default set here? --> |
| </field> |
| <field> |
| <name>plugins</name> |
| <version>4.0.0</version> |
| <description>The reporting 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[ |
| java.util.Map reportPluginMap; |
| |
| /** |
| * Reset the <code>reportPluginMap</code> field to <code>null</code> |
| */ |
| public void flushReportPluginMap() |
| { |
| this.reportPluginMap = null; |
| } |
| |
| /** |
| * @return a Map of plugins field with <code>ReportPlugin#getKey()</code> as key |
| * @see org.apache.maven.model.ReportPlugin#getKey() |
| */ |
| public java.util.Map getReportPluginsAsMap() |
| { |
| if ( reportPluginMap == null ) |
| { |
| reportPluginMap = new java.util.LinkedHashMap(); |
| if ( getPlugins() != null ) |
| { |
| for ( java.util.Iterator it = getPlugins().iterator(); it.hasNext(); ) |
| { |
| ReportPlugin reportPlugin = (ReportPlugin) it.next(); |
| reportPluginMap.put( reportPlugin.getKey(), reportPlugin ); |
| } |
| } |
| } |
| |
| return reportPluginMap; |
| } |
| |
| public boolean isExcludeDefaults() |
| { |
| return excludeDefaultsValue != null ? excludeDefaultsValue.booleanValue() : false; |
| } |
| |
| public void setExcludeDefaults( boolean excludeDefaults ) |
| { |
| excludeDefaultsValue = excludeDefaults ? Boolean.TRUE : Boolean.FALSE; |
| } |
| |
| public void setExcludeDefaultsValue( String excludeDefaults ) |
| { |
| excludeDefaultsValue = excludeDefaults != null ? Boolean.valueOf( excludeDefaults ) : null; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <!-- Profile support --> |
| <class> |
| <name>Profile</name> |
| <superClass>ModelBase</superClass> |
| <version>4.0.0</version> |
| <description>Modifications to the build process which is activated based on environmental |
| parameters or command line arguments.</description> |
| <fields> |
| <field> |
| <name>id</name> |
| <required>true</required> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>The identifier of this build profile. This is used for command line |
| activation, and identifies profiles to be merged. |
| </description> |
| </field> |
| <field> |
| <name>activation</name> |
| <version>4.0.0</version> |
| <description>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>Information required to build the project.</description> |
| <association> |
| <type>BuildBase</type> |
| </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; |
| } |
| |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Profile {id: " + getId() + ", source: " + getSource() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Activation</name> |
| <version>4.0.0</version> |
| <description>The conditions within the build runtime environment which will trigger the |
| automatic inclusion of the build profile.</description> |
| <fields> |
| <field> |
| <name>activeByDefault</name> |
| <version>4.0.0</version> |
| <type>boolean</type> |
| <description>If set to true, this profile will be active unless another profile in this |
| pom is activated using the command line -P option or by one of that profile's |
| activators.</description> |
| </field> |
| <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. |
| For example, <code>1.4</code> only activates on JDKs versioned 1.4, |
| while <code>!1.4</code> matches any JDK that is not version 1.4. |
| ]]> |
| </description> |
| </field> |
| <field> |
| <name>os</name> |
| <version>4.0.0</version> |
| <description>Specifies that this profile will be activated when matching operating system |
| attributes are detected.</description> |
| <association> |
| <type>ActivationOS</type> |
| </association> |
| </field> |
| <field> |
| <name>property</name> |
| <version>4.0.0</version> |
| <description>Specifies that this profile will be activated when this system property is |
| specified.</description> |
| <association> |
| <type>ActivationProperty</type> |
| </association> |
| </field> |
| <field> |
| <name>file</name> |
| <version>4.0.0</version> |
| <description>Specifies that this profile will be activated based on existence of a file.</description> |
| <association> |
| <type>ActivationFile</type> |
| </association> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>ActivationProperty</name> |
| <version>4.0.0</version> |
| <description>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 required to activate a profile.</description> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>ActivationOS</name> |
| <version>4.0.0</version> |
| <description>This is an activator which will detect an operating system's attributes in order |
| to activate its profile.</description> |
| <fields> |
| <field> |
| <name>name</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description> |
| <![CDATA[ |
| The name of the operating system to be used to activate the profile. This must be an exact match |
| of the <code>${os.name}</code> Java property, such as <code>Windows XP</code>. |
| ]]> |
| </description> |
| </field> |
| <field> |
| <name>family</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description> |
| <![CDATA[ |
| The general family of the OS to be used to activate the profile, such as |
| <code>windows</code> or <code>unix</code>. |
| ]]> |
| </description> |
| </field> |
| <field> |
| <name>arch</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>The architecture of the operating system to be used to activate the |
| profile.</description> |
| </field> |
| <field> |
| <name>version</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>The version of the operating system to be used to activate the |
| profile.</description> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>ActivationFile</name> |
| <version>4.0.0</version> |
| <description>This is the file specification used to activate the profile. The missing value |
| will be the location of a file that needs to exist, and if it doesn't the profile will be |
| activated. On the other hand exists will test for the existence of the file and if it is |
| there the profile will be activated.</description> |
| <fields> |
| <field> |
| <name>missing</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>The name of the file that must be missing to activate the |
| profile.</description> |
| </field> |
| <field> |
| <name>exists</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>The name of the file that must exist to activate the profile.</description> |
| </field> |
| </fields> |
| </class> |
| <!-- /BuildProfile support --> |
| <class xml.tagName="plugin"> |
| <name>ReportPlugin</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| The <code><plugin></code> element contains informations required for a report plugin. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>groupId</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <required>true</required> |
| <defaultValue>org.apache.maven.plugins</defaultValue> |
| <description>The group ID of the reporting plugin in the repository.</description> |
| </field> |
| <field> |
| <name>artifactId</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <required>true</required> |
| <description>The artifact ID of the reporting plugin in the repository.</description> |
| </field> |
| <field> |
| <name>version</name> |
| <version>4.0.0</version> |
| <description>The version of the reporting plugin to be used.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>inherited</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>Whether the configuration in this plugin should be made available to projects |
| that inherit from this one.</description> |
| </field> |
| <field> |
| <name>configuration</name> |
| <version>4.0.0</version> |
| <type>DOM</type> |
| <description>The configuration of the reporting plugin.</description> |
| </field> |
| <field> |
| <name>reportSets</name> |
| <version>4.0.0</version> |
| <description> |
| <![CDATA[ |
| Multiple specifications of a set of reports, each having (possibly) different |
| configuration. This is the reporting parallel to an <code>execution</code> in the build. |
| ]]> |
| </description> |
| <association> |
| <type>ReportSet</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| private java.util.Map reportSetMap = null; |
| |
| /** |
| * Reset the <code>reportSetMap</code> field to <code>null</code> |
| */ |
| public void flushReportSetMap() |
| { |
| this.reportSetMap = null; |
| } |
| |
| /** |
| * @return a Map of reportSets field with <code>ReportSet#getId()</code> as key |
| * @see org.apache.maven.model.ReportSet#getId() |
| */ |
| public java.util.Map getReportSetsAsMap() |
| { |
| if ( reportSetMap == null ) |
| { |
| reportSetMap = new java.util.LinkedHashMap(); |
| if ( getReportSets() != null ) |
| { |
| for ( java.util.Iterator i = getReportSets().iterator(); i.hasNext(); ) |
| { |
| ReportSet reportSet = (ReportSet) i.next(); |
| reportSetMap.put( reportSet.getId(), reportSet ); |
| } |
| } |
| } |
| |
| return reportSetMap; |
| } |
| |
| /** |
| * @return the key of the report plugin, ie <code>groupId:artifactId</code> |
| */ |
| public String getKey() |
| { |
| return constructKey( groupId, artifactId ); |
| } |
| |
| /** |
| * @param groupId |
| * @param artifactId |
| * @return the key of the report plugin, ie <code>groupId:artifactId</code> |
| */ |
| 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; |
| } |
| |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals( Object other ) |
| { |
| if ( other instanceof ReportPlugin ) |
| { |
| ReportPlugin otherPlugin = (ReportPlugin) other; |
| |
| return getKey().equals( otherPlugin.getKey() ); |
| } |
| |
| return false; |
| } |
| |
| /** |
| * @see java.lang.Object#hashCode() |
| */ |
| public int hashCode() |
| { |
| return getKey().hashCode(); |
| } |
| |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "ReportPlugin [" + getKey() + "]"; |
| } |
| ]]> |
| </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 and profile injection |
| for merging of report sets. |
| </description> |
| <defaultValue>default</defaultValue> |
| </field> |
| <field> |
| <name>configuration</name> |
| <version>4.0.0</version> |
| <description>Configuration of the report to be used when generating this set.</description> |
| <type>DOM</type> |
| </field> |
| <field> |
| <name>inherited</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <description>Whether any configuration should be propagated to child POMs.</description> |
| </field> |
| <field> |
| <name>reports</name> |
| <version>4.0.0</version> |
| <required>true</required> |
| <description>The list of reports from this plugin which should be generated from this set.</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>Prerequisites</name> |
| <version>4.0.0</version> |
| <description>Describes the prerequisites a project can have.</description> |
| <fields> |
| <field> |
| <name>maven</name> |
| <version>4.0.0</version> |
| <type>String</type> |
| <defaultValue>2.0</defaultValue> |
| <description>The minimum version of Maven required to build the project, or to use this |
| plugin.</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 ID 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> |
| <class> |
| <name>Extension</name> |
| <version>4.0.0</version> |
| <description>Describes a build extension to utilise.</description> |
| <fields> |
| <field> |
| <name>groupId</name> |
| <version>4.0.0</version> |
| <description>The group ID of the extension's artifact.</description> |
| <required>true</required> |
| <type>String</type> |
| </field> |
| <field> |
| <name>artifactId</name> |
| <version>4.0.0</version> |
| <description>The artifact ID of the extension.</description> |
| <required>true</required> |
| <type>String</type> |
| </field> |
| <field> |
| <name>version</name> |
| <version>4.0.0</version> |
| <description>The version of the extension.</description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0</version> |
| <code> |
| <![CDATA[ |
| /** |
| * Gets the key of the extension. The key is used to merge extensions inherited from a parent with the extensions |
| * of the current project. |
| * |
| * @return The key of the extension, i.e. <code>groupId:artifactId</code>. |
| */ |
| public String getKey() |
| { |
| return new StringBuffer( 128 ).append( getGroupId() ).append( ':' ).append( getArtifactId() ).toString(); |
| } |
| |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals( Object o ) |
| { |
| if ( this == o ) |
| { |
| return true; |
| } |
| |
| if ( !( o instanceof Extension ) ) |
| { |
| return false; |
| } |
| |
| Extension e = (Extension) o; |
| |
| if ( !equal( e.getArtifactId(), getArtifactId() ) ) |
| { |
| return false; |
| } |
| else if ( !equal( e.getGroupId(), getGroupId() ) ) |
| { |
| return false; |
| } |
| else if ( !equal( e.getVersion(), getVersion() ) ) |
| { |
| return false; |
| } |
| return true; |
| } |
| |
| private static <T> boolean equal( T obj1, T obj2 ) |
| { |
| return ( obj1 != null ) ? obj1.equals( obj2 ) : obj2 == null; |
| } |
| |
| /** |
| * @see java.lang.Object#hashCode() |
| */ |
| public int hashCode() |
| { |
| int result = 17; |
| result = 37 * result + ( getArtifactId() != null ? getArtifactId().hashCode() : 0 ); |
| result = 37 * result + ( getGroupId() != null ? getGroupId().hashCode() : 0 ); |
| result = 37 * result + ( getVersion() != null ? getVersion().hashCode() : 0 ); |
| return result; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| </classes> |
| </model> |