| <?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://codehaus-plexus.github.io/MODELLO/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 https://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd" |
| xml.namespace="http://maven.apache.org/POM/${version}" |
| xml.schemaLocation="https://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="https://maven.apache.org/xsd/maven-v3_0_0.xsd">https://maven.apache.org/xsd/maven-v3_0_0.xsd</a> for Maven 1.1.</li> |
| <li><a href="https://maven.apache.org/xsd/maven-4.0.0.xsd">https://maven.apache.org/xsd/maven-4.0.0.xsd</a> for Maven 2.0.</li> |
| <li><a href="https://maven.apache.org/xsd/maven-4.1.0.xsd">https://maven.apache.org/xsd/maven-4.1.0.xsd</a> for Maven 4.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> |
| The {@code <project>} element is the root of the descriptor. |
| The following table lists all of the possible child elements. |
| </description> |
| <version>3.0.0+</version> |
| <fields> |
| |
| <field xml.transient="true"> |
| <name>pomFile</name> |
| <version>4.1.0+</version> |
| <required>false</required> |
| <description>Originating POM file</description> |
| <type>DOM</type> <!-- This is transformed to a File/Path in the template --> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Model Version --> |
| <!-- ====================================================================== --> |
| |
| <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>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> |
| 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}). |
| </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>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>packaging</name> |
| <version>4.0.0+</version> |
| <description> |
| The type of artifact this project produces, for example {@code jar}, |
| {@code war}, |
| {@code ear}, |
| {@code pom}. |
| 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>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 website. 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 website, |
| 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. |
| <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if |
| project's {@code child.project.url.inherit.append.path="false"}</p> |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.attribute="true" xml.tagName="child.project.url.inherit.append.path"> |
| <name>childProjectUrlInheritAppendPath</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| When children inherit from project's url, append path or not? Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean} |
| <p><b>Default value is</b>: {@code true}</p> |
| @since Maven 3.6.1 |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.attribute="true" xml.tagName="root"> |
| <name>root</name> |
| <version>4.1.0+</version> |
| <description> |
| Indicates that this project is the root project, located in the upper directory of the source tree. |
| This is the directory which may contain the .mvn directory. |
| |
| @since Maven 4.0.0 |
| </description> |
| <type>boolean</type> |
| <defaultValue>false</defaultValue> |
| </field> |
| <field xml.attribute="true" xml.tagName="preserve.model.version"> |
| <name>preserveModelVersion</name> |
| <version>4.1.0+</version> |
| <description> |
| Indicates if the build POM for this project should be preserved or downgraded to the lowest |
| compatible version. |
| @since Maven 4.0.0 |
| </description> |
| <type>boolean</type> |
| <defaultValue>false</defaultValue> |
| </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>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 the licenses for this project. |
| Each license is described by a {@code license} 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>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> |
| <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> |
| |
| <!-- ====================================================================== --> |
| <!-- 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> |
| |
| <!-- ====================================================================== --> |
| <!-- SCM --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank" xml.insertParentFieldsUpTo="modules"> |
| <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> |
| |
| <!-- ====================================================================== --> |
| <!-- Issue Tracking --> |
| <!-- ====================================================================== --> |
| |
| <field> |
| <name>issueManagement</name> |
| <version>4.0.0+</version> |
| <description>The project's issue management system information.</description> |
| <association> |
| <type>IssueManagement</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- CI Management --> |
| <!-- ====================================================================== --> |
| |
| <field> |
| <name>ciManagement</name> |
| <version>4.0.0+</version> |
| <description>The project's continuous integration information.</description> |
| <association> |
| <type>CiManagement</type> |
| </association> |
| </field> |
| |
| <!-- ====================================================================== --> |
| <!-- Build --> |
| <!-- ====================================================================== --> |
| |
| <field xdoc.separator="blank" xml.insertParentFieldsUpTo="pluginRepositories"> |
| <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" xml.insertParentFieldsUpTo="reporting"> |
| <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>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| /** |
| * Gets the POM file for the corresponding project (if any). |
| * |
| * @return The POM file from which this model originated or {@code null} if this model does not belong to a local |
| * project (e.g. describes the metadata of some artifact from the repository). |
| */ |
| @Deprecated |
| public java.io.File getPomFile() { |
| return (getDelegate().getPomFile() != null) ? getDelegate().getPomFile().toFile() : null; |
| } |
| |
| @Deprecated |
| public void setPomFile(java.io.File pomFile) { |
| update( getDelegate().withPomFile(pomFile != null ? pomFile.toPath() : null)); |
| } |
| |
| /** |
| * Gets the POM file for the corresponding project (if any). |
| * |
| * @return The POM file from which this model originated or {@code null} if this model does not belong to a local |
| * project (e.g. describes the metadata of some artifact from the repository). |
| */ |
| public java.nio.file.Path getPomPath() { |
| return (getDelegate().getPomFile() != null) ? getDelegate().getPomFile() : null; |
| } |
| |
| public void setPomPath(java.nio.file.Path pomPath) { |
| update( getDelegate().withPomFile(pomPath)); |
| } |
| |
| public void setModelEncoding(String modelEncoding) { |
| update(getDelegate().with().modelEncoding(modelEncoding).build()); |
| } |
| |
| /** |
| * Gets the base directory for the corresponding project (if any). |
| * |
| * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local |
| * project (e.g. describes the metadata of some artifact from the repository). |
| */ |
| @Deprecated |
| public java.io.File getProjectDirectory() { |
| return (getDelegate().getProjectDirectory() != null) ? getDelegate().getProjectDirectory().toFile() : null; |
| } |
| |
| /** |
| * Gets the base directory for the corresponding project (if any). |
| * |
| * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local |
| * project (e.g. describes the metadata of some artifact from the repository). |
| */ |
| public java.nio.file.Path getProjectDirectoryPath() { |
| return getDelegate().getProjectDirectory(); |
| } |
| |
| /** |
| * @return the model id as {@code groupId:artifactId:packaging:version} |
| */ |
| public String getId() { |
| StringBuilder id = new StringBuilder( 64 ); |
| |
| id.append( ( getGroupId() == null ) ? "[inherited]" : getGroupId() ); |
| id.append( ":" ); |
| id.append( getArtifactId() ); |
| id.append( ":" ); |
| id.append( getPackaging() ); |
| id.append( ":" ); |
| id.append( ( getVersion() == null ) ? "[inherited]" : getVersion() ); |
| |
| return id.toString(); |
| } |
| |
| @Override |
| public String toString() { |
| return getId(); |
| } |
| |
| public boolean isChildProjectUrlInheritAppendPath() { |
| return getDelegate().isChildProjectUrlInheritAppendPath(); |
| } |
| |
| public void setChildProjectUrlInheritAppendPath(boolean childProjectUrlInheritAppendPath) { |
| delegate = getDelegate().withChildProjectUrlInheritAppendPath(String.valueOf(childProjectUrlInheritAppendPath)); |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.1.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * Gets the base directory for the corresponding project (if any). |
| * |
| * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local |
| * project (e.g. describes the metadata of some artifact from the repository). |
| */ |
| public Path getProjectDirectory() { |
| return (pomFile != null) ? pomFile.getParent() : null; |
| } |
| |
| /** |
| * @return the model id as {@code groupId:artifactId:packaging:version} |
| */ |
| public String getId() |
| { |
| StringBuilder id = new StringBuilder( 64 ); |
| |
| id.append( ( getGroupId() == null ) ? "[inherited]" : getGroupId() ); |
| id.append( ":" ); |
| id.append( getArtifactId() ); |
| id.append( ":" ); |
| id.append( getPackaging() ); |
| id.append( ":" ); |
| id.append( ( getVersion() == null ) ? "[inherited]" : getVersion() ); |
| |
| return id.toString(); |
| } |
| |
| @Override |
| public String toString() |
| { |
| return getId(); |
| } |
| |
| public boolean isChildProjectUrlInheritAppendPath() |
| { |
| return ( getChildProjectUrlInheritAppendPath() != null ) ? Boolean.parseBoolean( getChildProjectUrlInheritAppendPath() ) : true; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>ModelBase</name> |
| <version>3.0.0+</version> |
| <description> |
| Base class for the {@code Model} and the {@code Profile} objects. |
| </description> |
| <fields> |
| <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. |
| To be consistent with the way default urls are calculated from parent, it is recommended |
| to have module names match artifact ids.</description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field xdoc.separator="blank"> |
| <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>properties</name> |
| <version>4.0.0+</version> |
| <description> |
| 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>}. |
| </description> |
| <type>Properties</type> |
| <association xml.mapStyle="inline"> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </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> |
| <name>dependencies</name> |
| <version>3.0.0+</version> |
| <description> |
| This element describes all 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="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">Dependency mechanism</a> |
| </description> |
| <association> |
| <type>Dependency</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>reports</name> |
| <version>4.0.0</version> |
| <description> |
| @deprecated Now ignored by Maven. |
| </description> |
| <type>DOM</type> |
| </field> |
| <field> |
| <name>reporting</name> |
| <version>4.0.0+</version> |
| <description> |
| 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}. |
| All the reports will be included in the navigation bar for browsing. |
| </description> |
| <association> |
| <type>Reporting</type> |
| </association> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>PluginContainer</name> |
| <version>3.0.0+</version> |
| <description>Contains the plugins information 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/4.0.99</version> |
| <code> |
| <![CDATA[ |
| /** |
| * Reset the {@code pluginsMap} field to {@code null} |
| */ |
| public void flushPluginMap() { |
| } |
| |
| /** |
| * @return a Map of plugins field with {@code Plugins#getKey()} as key |
| * @see Plugin#getKey() |
| */ |
| public Map<String, Plugin> getPluginsAsMap() { |
| return getPlugins().stream().collect(Collectors.toMap(plugin -> plugin.getKey(), plugin -> plugin)); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.1.0+</version> |
| <code> |
| <![CDATA[ |
| volatile Map<String, Plugin> pluginMap; |
| |
| /** |
| * @return a Map of plugins field with {@code Plugins#getKey()} as key |
| * @see Plugin#getKey() |
| */ |
| public Map<String, Plugin> getPluginsAsMap() { |
| if (pluginMap == null) { |
| synchronized (this) { |
| if (pluginMap == null) { |
| pluginMap = ImmutableCollections.copy(plugins.stream().collect( |
| java.util.stream.Collectors.toMap( |
| Plugin::getKey, java.util.function.Function.identity()))); |
| } |
| } |
| } |
| return pluginMap; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| @Override |
| public String toString() |
| { |
| return "PluginContainer {}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>PluginConfiguration</name> |
| <version>3.0.0+</version> |
| <superClass>PluginContainer</superClass> |
| <description>Contains the plugins management information 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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "PluginConfiguration {" + super.toString() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class xdoc.anchorName="profile_build"> |
| <name>BuildBase</name> |
| <version>3.0.0+</version> |
| <superClass>PluginConfiguration</superClass> |
| <description>Build configuration in a profile.</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. Note that in case of a multi-module build, only the default goal of the top-level |
| project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3, |
| multiple goals/phases can be separated by whitespace.</description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>resources</name> |
| <version>3.0.0+</version> |
| <description> |
| This element describes all the classpath resources such as properties |
| files associated with a project. These resources are often included in the final |
| package. |
| The default value is {@code src/main/resources}. |
| </description> |
| <association> |
| <type>Resource</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>testResources</name> |
| <version>4.0.0+</version> |
| <description> |
| This element describes all the classpath resources such as properties |
| files associated with a project's unit tests. |
| The default value is {@code src/test/resources}. |
| </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. |
| The default value is {@code target}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>finalName</name> |
| <version>4.0.0+</version> |
| <description> |
| The filename (excluding the extension, and with no path information) that |
| the produced artifact will be called. |
| The default value is {@code ${artifactId}-${version}}. |
| </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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "BuildBase {" + super.toString() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Build</name> |
| <version>3.0.0+</version> |
| <superClass>BuildBase</superClass> |
| <description> |
| The {@code <build>} element contains information required to build the project. |
| Default values are defined in Super POM. |
| </description> |
| <fields> |
| <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 sources from this directory when the project is |
| built. The path given is relative to the project descriptor. |
| The default value is {@code src/main/java}. |
| </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). |
| The default value is {@code src/main/scripts}. |
| </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. |
| The default value is {@code src/test/java}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>outputDirectory</name> |
| <version>4.0.0+</version> |
| <description> |
| The directory where compiled application classes are placed. |
| The default value is {@code target/classes}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>testOutputDirectory</name> |
| <version>4.0.0+</version> |
| <description> |
| The directory where compiled test classes are placed. |
| The default value is {@code target/test-classes}. |
| </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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Build {" + super.toString() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>CiManagement</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| The {@code <ciManagement>} element contains information required to the |
| continuous integration system of the project. |
| ]]> |
| </description> |
| <fields> |
| <field> |
| <name>system</name> |
| <version>4.0.0+</version> |
| <description> |
| The name of the continuous integration system, e.g. {@code continuum}. |
| </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> |
| @deprecated 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> |
| The roles the contributor plays in the project. Each role is described by a |
| {@code role} 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> |
| <![CDATA[ |
| The timezone the contributor is in. Typically, this is a number in the range |
| <a href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a> to <a href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a> |
| or a valid time zone id like "America/Montreal" (UTC-05:00) or "Europe/Paris" (UTC+01:00). |
| ]]> |
| </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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Contributor {name=" + getName() + ", email=" + getEmail() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Dependency</name> |
| <version>3.0.0+</version> |
| <description> |
| <![CDATA[ |
| The {@code <dependency>} element contains information about a dependency |
| of the project. |
| ]]> |
| </description> |
| <fields> |
| <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}. |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>artifactId</name> |
| <version>3.0.0+</version> |
| <required>true</required> |
| <description> |
| The unique id for an artifact produced by the project group, e.g. |
| {@code maven-artifact}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>version</name> |
| <version>3.0.0+</version> |
| <description> |
| The version of the dependency, e.g. {@code 3.2.1}. Since Maven 2, this can also be |
| specified as a range of versions. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>type</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| The type of dependency, that will be mapped to a file extension, an optional classifier, and a few other attributes. |
| Some examples are {@code jar}, {@code war}, {@code ejb-client} |
| and {@code test-jar}: see <a href="../maven-core/artifact-handlers.html">default |
| artifact handlers</a> for a list. New types can be defined by extensions, 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. It is appended to |
| the filename after the version. This allows: |
| <ul> |
| <li>referring to attached artifact, for example {@code sources} and {@code javadoc}: |
| see <a href="../maven-core/artifact-handlers.html">default artifact handlers</a> for a list,</li> |
| <li>distinguishing two artifacts |
| that belong to the same POM but were built differently. |
| For example, {@code jdk14} and {@code jdk15}.</li> |
| </ul> |
| ]]> |
| </description> |
| <type>String</type> |
| <required>false</required> |
| </field> |
| <field> |
| <name>scope</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| The scope of the dependency - {@code compile}, {@code runtime}, |
| {@code test}, {@code system}, and {@code provided}. 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="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the |
| dependency mechanism</a>. The default scope is {@code compile}. |
| ]]> |
| </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}}. |
| ]]> |
| </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. Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean}. Default value is {@code false}. |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| public boolean isOptional() { |
| return (getOptional() != null) ? Boolean.parseBoolean(getOptional()) : false; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| public void setOptional(boolean optional) { |
| setOptional(String.valueOf(optional)); |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() { |
| return "Dependency {groupId=" + getGroupId() + ", artifactId=" + getArtifactId() + ", version=" + getVersion() + ", type=" + getType() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| private volatile String managementKey; |
| |
| /** |
| * @return the management key as {@code groupId:artifactId:type} |
| */ |
| public String getManagementKey() { |
| if (managementKey == null) { |
| managementKey = getGroupId() + ":" + getArtifactId() + ":" + getType() + (getClassifier() != null ? ":" + getClassifier() : ""); |
| } |
| return managementKey; |
| } |
| ]]> |
| </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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() { |
| return "Developer {id=" + getId() + ", " + super.toString() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Exclusion</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| The {@code <exclusion>} element contains information required to exclude |
| an artifact to the project. |
| <p> |
| The {@code groupId} and {@code artifactId} fields are interpreted as glob patterns. |
| |
| @see java.nio.file.FileSystem#getPathMatcher |
| ]]> |
| </description> |
| <fields> |
| <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> |
| <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> |
| </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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "IssueManagement {system=" + getSystem() + ", url=" + getUrl() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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> |
| Where to deploy snapshots of artifacts to. If not given, it defaults to the |
| {@code repository} 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> |
| The URL of the project's download page. If not given users will be |
| referred to the homepage given by {@code url}. |
| 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> |
| 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 repository. Valid values are: {@code none} (default), |
| {@code converted} (repository manager converted this from an Maven 1 POM), |
| {@code partner} |
| (directly synced from a partner Maven 2 repository), {@code deployed} (was deployed from a Maven 2 |
| instance), {@code verified} (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 website, 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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "License {name=" + getName() + ", url=" + getUrl() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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> |
| The name of the mailing list. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>subscribe</name> |
| <version>3.0.0+</version> |
| <description> |
| The email address or link that can be used to subscribe to |
| the mailing list. If this is an email address, a |
| {@code mailto:} 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> |
| The email address or link that can be used to unsubscribe to |
| the mailing list. If this is an email address, a |
| {@code mailto:} 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> |
| The email address or link that can be used to post to |
| the mailing list. If this is an email address, a |
| {@code mailto:} 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> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "MailingList {name=" + getName() + ", archive=" + getArchive() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() |
| { |
| return "Organization {name=" + getName() + ", url=" + getUrl() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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> |
| A list of patterns to include, e.g. {@code **&#47;*.xml}. |
| </description> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>excludes</name> |
| <version>3.0.0+</version> |
| <description> |
| A list of patterns to exclude, e.g. {@code **&#47;*.xml} |
| </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() { |
| return "PatternSet [" + |
| "includes: {" + getIncludes().stream().collect(java.util.stream.Collectors.joining(", ")) + "}, " + |
| "excludes: {" + getExcludes().stream().collect(java.util.stream.Collectors.joining(", ")) + "}]"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Parent</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| The {@code <parent>} element contains information required to locate the parent project from which |
| this project will inherit from. |
| <p><strong>Note:</strong> The children of this element are not interpolated and must be given as literal values.</p> |
| ]]> |
| </description> |
| <fields> |
| <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>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>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> |
| The relative path of the parent {@code pom.xml} file within the checkout. |
| If not specified, it defaults to {@code ../pom.xml}. |
| Maven looks for the parent POM first in this location on |
| the filesystem, then the local repository, and lastly in the remote repo. |
| {@code relativePath} 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. |
| Set the value to an empty string in case you want to disable the feature and always resolve |
| the parent POM from the repositories. |
| </description> |
| <type>String</type> |
| <defaultValue>..</defaultValue> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @return the id as {@code groupId:artifactId:version} |
| */ |
| public String getId() { |
| return getGroupId() + ":" + getArtifactId() + ":pom:" + getVersion(); |
| } |
| |
| @Override |
| public String toString() { |
| return getId(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| |
| </class> |
| <class> |
| <name>Scm</name> |
| <version>4.0.0+</version> |
| <description> |
| The {@code <scm>} element contains information 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. |
| This connection is read-only. |
| <br><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if |
| scm's {@code child.scm.connection.inherit.append.path="false"} |
| @see <a href="https://maven.apache.org/scm/scm-url-format.html">URL format</a> |
| @see <a href="https://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a> |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>developerConnection</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| Just like {@code connection}, but for developers, i.e. this scm connection |
| will not be read only. |
| <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if |
| scm's {@code child.scm.developerConnection.inherit.append.path="false"}.</p> |
| ]]> |
| </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> |
| <![CDATA[ |
| The URL to the project's browsable SCM repository, such as ViewVC or Fisheye. |
| <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if |
| scm's {@code child.scm.url.inherit.append.path="false"}</p> |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.attribute="true" xml.tagName="child.scm.connection.inherit.append.path"> |
| <name>childScmConnectionInheritAppendPath</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| When children inherit from scm connection, append path or not? Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean} |
| <p><b>Default value is</b>: {@code true}</p> |
| @since Maven 3.6.1 |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.attribute="true" xml.tagName="child.scm.developerConnection.inherit.append.path"> |
| <name>childScmDeveloperConnectionInheritAppendPath</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| When children inherit from scm developer connection, append path or not? Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean} |
| <p><b>Default value is</b>: {@code true}</p> |
| @since Maven 3.6.1 |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.attribute="true" xml.tagName="child.scm.url.inherit.append.path"> |
| <name>childScmUrlInheritAppendPath</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| When children inherit from scm url, append path or not? Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean} |
| <br><b>Default value is</b>: {@code true} |
| @since Maven 3.6.1 |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| |
| public boolean isChildScmConnectionInheritAppendPath() { |
| return (getChildScmConnectionInheritAppendPath() != null) ? Boolean.parseBoolean(getChildScmConnectionInheritAppendPath()) : true; |
| } |
| |
| public boolean isChildScmDeveloperConnectionInheritAppendPath() { |
| return (getChildScmDeveloperConnectionInheritAppendPath() != null) ? Boolean.parseBoolean(getChildScmDeveloperConnectionInheritAppendPath()) : true; |
| } |
| |
| public boolean isChildScmUrlInheritAppendPath() { |
| return (getChildScmUrlInheritAppendPath() != null) ? Boolean.parseBoolean(getChildScmUrlInheritAppendPath()) : true; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() { |
| return "Scm {connection=" + getConnection() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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> |
| Describe the resource target path. The path is relative to the target/classes |
| directory (i.e. {@code ${project.build.outputDirectory}}). |
| For example, if you want that resource to appear in a specific package |
| ({@code org.apache.maven.messages}), you must specify this |
| element with this value: {@code org/apache/maven/messages}. |
| 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> |
| Whether resources are filtered to replace tokens with parameterised values or not. |
| The values are taken from the {@code properties} element and from the |
| properties in the files listed in the {@code filters} element. Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean}. Default value is {@code false}. |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.transient="true"> |
| <name>mergeId</name> |
| <version>4.0.0+</version> |
| <description> |
| 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[ |
| public boolean isFiltering() { |
| return (getFiltering() != null) ? Boolean.parseBoolean(getFiltering()) : false; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| public void setFiltering(boolean filtering) { |
| setFiltering(String.valueOf(filtering)); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() { |
| return "Resource {targetPath: " + getTargetPath() + ", filtering: " + isFiltering() + ", " + super.toString() + "}"; |
| } |
| ]]> |
| </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> |
| A unique identifier for a repository. This is used to match the repository |
| to configuration in the {@code settings.xml} 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> |
| The url of the repository, in the form {@code protocol://hostname/path}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>layout</name> |
| <version>4.0.0+</version> |
| <description> |
| The type of layout this repository uses for locating and storing artifacts - |
| can be {@code legacy} or {@code default}. |
| </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 xdoc.anchorName="deployment_repository"> |
| <name>DeploymentRepository</name> |
| <superClass>Repository</superClass> |
| <version>4.0.0+</version> |
| <description>Deployment repository contains the information needed for deploying to the remote |
| repository, which adds uniqueVersion property to usual repositories for download.</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. Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean}. Default value is {@code true}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>updatePolicy</name> |
| <version>4.0.0+</version> |
| <description> |
| The frequency for downloading updates - can be |
| {@code always}, |
| {@code daily} (default), |
| {@code interval:XXX} (in minutes) or |
| {@code never} (only if it doesn't exist locally). |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>checksumPolicy</name> |
| <version>4.0.0+</version> |
| <description> |
| What to do when verification of an artifact checksum fails. Valid values are |
| {@code ignore}, |
| {@code fail} (default for Maven 4 and above) or |
| {@code warn} (default for Maven 2 and 3). |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| public boolean isEnabled() { |
| return (getEnabled() != null) ? Boolean.parseBoolean(getEnabled()) : true; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| public void setEnabled(boolean enabled) { |
| setEnabled(String.valueOf(enabled)); |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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> |
| A unique identifier for a deployment location. This is used to match the |
| site to configuration in the {@code settings.xml} 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}. |
| <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if |
| site's {@code child.site.url.inherit.append.path="false"}.</p> |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| <field xml.attribute="true" xml.tagName="child.site.url.inherit.append.path"> |
| <name>childSiteUrlInheritAppendPath</name> |
| <version>4.0.0+</version> |
| <description> |
| <![CDATA[ |
| When children inherit from distribution management site url, append path or not? Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean} |
| <p><b>Default value is</b>: {@code true}</p> |
| @since Maven 3.6.1 |
| ]]> |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| |
| public boolean isChildSiteUrlInheritAppendPath() { |
| return (getChildSiteUrlInheritAppendPath() != null) ? Boolean.parseBoolean(getChildSiteUrlInheritAppendPath()) : true; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </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. Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean}. Default value is {@code true}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <description> |
| <![CDATA[ |
| <p>The configuration as DOM object.</p> |
| <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add |
| {@code xml:space="preserve"} to elements you want to preserve whitespace.</p> |
| <p>You can control how child POMs inherit configuration from parent POMs by adding {@code combine.children} |
| or {@code combine.self} attributes to the children of the configuration element:</p> |
| <ul> |
| <li>{@code combine.children}: available values are {@code merge} (default) and {@code append},</li> |
| <li>{@code combine.self}: available values are {@code merge} (default) and {@code override}.</li> |
| </ul> |
| |
| @see <a href="https://maven.apache.org/pom.html#Plugins">POM Reference documentation</a> |
| @see <a href="https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a> |
| ]]> |
| </description> |
| <name>configuration</name> |
| <type>DOM</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| public boolean isInherited() { |
| return ( getInherited() != null ) ? Boolean.parseBoolean( getInherited() ) : true; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| @Deprecated |
| public void unsetInheritanceApplied() { |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>Plugin</name> |
| <version>4.0.0+</version> |
| <superClass>ConfigurationContainer</superClass> |
| <description> |
| The {@code <plugin>} element contains information 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> |
| <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>String</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. Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean}. Default value is {@code false}. |
| </description> |
| </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>goals</name> |
| <version>4.0.0</version> |
| <description> |
| @deprecated Unused by Maven. |
| </description> |
| <type>DOM</type> |
| </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> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| public boolean isExtensions() { |
| return (getExtensions() != null) ? Boolean.parseBoolean(getExtensions()) : false; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| public void setExtensions(boolean extensions) { |
| setExtensions(String.valueOf(extensions)); |
| } |
| |
| /** |
| * Reset the {@code executionMap} field to {@code null} |
| */ |
| @Deprecated |
| public void flushExecutionMap() { |
| } |
| |
| /** |
| * @return a Map of executions field with {@code PluginExecution#getId()} as key |
| * @see PluginExecution#getId() |
| */ |
| public Map<String, PluginExecution> getExecutionsAsMap() { |
| return getExecutions().stream().collect(Collectors.toMap(exec -> exec.getId(), exec -> exec)); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * Gets the identifier of the plugin. |
| * |
| * @return the plugin id in the form {@code <groupId>:<artifactId>:<version>}, never {@code null} |
| */ |
| public String getId() { |
| return new StringBuilder(128) |
| .append((getGroupId() == null) ? "[unknown-group-id]" : getGroupId()) |
| .append(":") |
| .append((getArtifactId() == null) ? "[unknown-artifact-id]" : getArtifactId()) |
| .append(":") |
| .append((getVersion() == null) ? "[unknown-version]" : getVersion()) |
| .toString(); |
| } |
| |
| /** |
| * @return the key of the plugin, ie {@code groupId:artifactId} |
| */ |
| public String getKey() { |
| return constructKey(getGroupId(), getArtifactId()); |
| } |
| |
| /** |
| * @param groupId the group ID of the plugin in the repository |
| * @param artifactId the artifact ID of the reporting plugin in the repository |
| * @return the key of the plugin, ie {@code groupId:artifactId} |
| */ |
| public static String constructKey(String groupId, String artifactId) { |
| return groupId + ":" + artifactId; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.1.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals(Object other) { |
| 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> |
| The {@code @lt;execution>} element contains information required for the |
| execution of a plugin. |
| </description> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>4.0.0+</version> |
| <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 by the plugin. </description> |
| </field> |
| <field xml.transient="true"> |
| <name>priority</name> |
| <version>4.0.0/4.0.99</version> |
| <type>int</type> |
| <description> |
| <![CDATA[ |
| The priority of this execution compared to other executions which are bound to the same phase. |
| <p><strong>Warning:</strong> This is an internal utility property that is only public for technical reasons, |
| it is not part of the public API. In particular, this property can be changed or deleted without prior |
| notice.</p> |
| ]]> |
| </description> |
| </field> |
| <field> |
| <name>priority</name> |
| <version>4.1.0+</version> |
| <type>int</type> |
| <description> |
| The priority of this execution compared to other executions which are bound to the same phase. |
| Executions derived from the default lifecycle have a negative priority by default so that they are executed |
| before any custom plugin executions. |
| @since Maven 4.0.0 |
| </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"; |
| |
| @Override |
| public String toString() { |
| return getId(); |
| } |
| ]]> |
| </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> |
| <name>excludeDefaults</name> |
| <version>4.0.0+</version> |
| <type>String</type> |
| <description> |
| If true, then the default reports are not included in the site generation. |
| This includes the reports in the "Project Info" menu. Note: While the type |
| of this field is {@code String} for technical reasons, the semantic type is actually |
| {@code Boolean}. Default value is {@code false}. |
| </description> |
| </field> |
| <field> |
| <name>outputDirectory</name> |
| <version>4.0.0+</version> |
| <type>String</type> |
| <description> |
| Where to store all the generated reports. The default is |
| {@code ${project.build.directory}/site}. |
| </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[ |
| public boolean isExcludeDefaults() { |
| return (getExcludeDefaults() != null) ? Boolean.parseBoolean(getExcludeDefaults()) : false; |
| } |
| |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.0.0/4.0.99</version> |
| <code> |
| <![CDATA[ |
| public void setExcludeDefaults(boolean excludeDefaults) { |
| setExcludeDefaults(String.valueOf(excludeDefaults)); |
| } |
| |
| /** |
| * Reset the <code>reportPluginMap</code> field to <code>null</code> |
| */ |
| @Deprecated |
| public void flushReportPluginMap() { |
| } |
| |
| /** |
| * @return a Map of plugins field with <code>ReportPlugin#getKey()</code> as key |
| * @see org.apache.maven.model.ReportPlugin#getKey() |
| */ |
| public java.util.Map<String, ReportPlugin> getReportPluginsAsMap() { |
| return getPlugins().stream().collect(Collectors.toMap(report -> report.getKey(), report -> report)); |
| } |
| ]]> |
| </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> |
| <defaultValue>default</defaultValue> |
| <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/4.0.99</version> |
| <code> |
| <![CDATA[ |
| public static final String SOURCE_POM = "pom"; |
| |
| public static final String SOURCE_SETTINGS = "settings.xml"; |
| |
| public void setSource(String source) { |
| getDelegate().setSource(source); |
| } |
| |
| public String getSource() { |
| return getDelegate().getSource(); |
| } |
| |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| public String toString() { |
| return "Profile {id: " + getId() + ", source: " + getSource() + "}"; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| <codeSegment> |
| <version>4.1.0+</version> |
| <code> |
| <![CDATA[ |
| public static final String SOURCE_POM = "pom"; |
| |
| public static final String SOURCE_SETTINGS = "settings.xml"; |
| |
| // 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 = 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. Multiple conditions can be defined, which must |
| be all satisfied to activate the 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> |
| Specifies that this profile will be activated when a matching JDK is detected. |
| For example, {@code 1.4} only activates on JDKs versioned 1.4, |
| while {@code !1.4} matches any JDK that is not version 1.4. Ranges are supported too: |
| {@code [1.5,)} activates when the JDK is 1.5 minimum. |
| </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 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> |
| <field> |
| <name>packaging</name> |
| <version>4.1.0+</version> |
| <type>String</type> |
| <description>Specifies that this profile will be activated based on the project's packaging.</description> |
| </field> |
| <!-- |
| This could be included once we teach Maven to deal with multiple versions of the model |
| <field> |
| <name>custom</name> |
| <version>4.1.0+</version> |
| <description>Describes a custom profile activation trigger, brought in via build |
| extension.</description> |
| <association> |
| <type>ActivationCustom</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> |
| The name of the operating system to be used to activate the profile. This must be an exact match |
| of the {@code ${os.name}} Java property, such as {@code Windows XP}. |
| </description> |
| </field> |
| <field> |
| <name>family</name> |
| <version>4.0.0+</version> |
| <type>String</type> |
| <description> |
| The general family of the OS to be used to activate the profile, such as |
| {@code windows} or {@code unix}. |
| </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 {@code missing} value |
| is the location of a file that needs to exist, and if it doesn't, the profile will be |
| activated. On the other hand, {@code exists} will test for the existence of the file and if it is |
| there, the profile will be activated. |
| <p>Variable interpolation for these file specifications is limited to {@code ${project.basedir}}, |
| system properties and user properties.</p></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> |
| <!-- |
| This can be put back in when we figure out how to have multiple model versions |
| <class> |
| <name>ActivationCustom</name> |
| <version>4.1.0+</version> |
| <description>This activation allows users to specify their own custom trigger for a profile.</description> |
| <fields> |
| <field> |
| <name>configuration</name> |
| <version>4.1.0+</version> |
| <type>DOM</type> |
| <description>The specification for triggering the profile according to the rules of the |
| custom activation type.</description> |
| </field> |
| <field> |
| <name>type</name> |
| <version>4.1.0+</version> |
| <type>String</type> |
| <description>The type (role-hint) of activation which is to be used to activate the |
| profile.</description> |
| </field> |
| </fields> |
| </class> |
| --> |
| <!-- /BuildProfile support --> |
| <class xml.tagName="plugin" xdoc.anchorName="report_plugin" java.clone="deep"> |
| <name>ReportPlugin</name> |
| <version>4.0.0+</version> |
| <superClass>ConfigurationContainer</superClass> |
| <description> |
| <![CDATA[ |
| The {@code <plugin>} element in {@code <reporting><plugins>} contains information 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. Starting with Maven 3, if no version is defined explicitly, |
| version is searched in {@code build/plugins} then in {@code build/pluginManagement}. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>reportSets</name> |
| <version>4.0.0+</version> |
| <description> |
| Multiple specifications of a set of reports, each having (possibly) different |
| configuration. This is the reporting parallel to an {@code execution} 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<String, ReportSet> reportSetMap = null; |
| |
| /** |
| * Reset the {@code reportSetMap} field to {@code null} |
| */ |
| public void flushReportSetMap() { |
| this.reportSetMap = null; |
| } |
| |
| /** |
| * @return a Map of reportSets field with {@code ReportSet#getId()} as key |
| * @see ReportSet#getId() |
| */ |
| public java.util.Map<String, ReportSet> getReportSetsAsMap() { |
| if (reportSetMap == null) { |
| reportSetMap = new java.util.LinkedHashMap<String, ReportSet>(); |
| if (getReportSets() != null) { |
| for (java.util.Iterator<ReportSet> 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} |
| */ |
| public String getKey() { |
| return constructKey(getGroupId(), getArtifactId()); |
| } |
| |
| /** |
| * @param groupId The group ID of the plugin in the repository |
| * @param artifactId The artifact ID of the reporting plugin in the repository |
| * @return the key of the report plugin, ie {@code groupId:artifactId} |
| */ |
| public static String constructKey(String groupId, String artifactId) { |
| return groupId + ":" + artifactId; |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>ReportSet</name> |
| <version>4.0.0+</version> |
| <superClass>ConfigurationContainer</superClass> |
| <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>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[ |
| @Override |
| public String toString() { |
| return getId(); |
| } |
| ]]> |
| </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><![CDATA[ |
| For a plugin project (packaging is {@code maven-plugin}), the minimum version of |
| Maven required to use the resulting plugin.<br> |
| In Maven 2, this was also specifying the minimum version of Maven required to build a |
| project, but this usage is <b>deprecated</b> in Maven 3 and not checked any more: use |
| the <a href="https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html">Maven Enforcer Plugin's |
| {@code requireMavenVersion} rule</a> instead. |
| ]]> |
| </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> |
| <field> |
| <name>configuration</name> |
| <version>4.1.0+</version> |
| <description> |
| The configuration of the extension. |
| @since Maven 4.0.0 |
| </description> |
| <type>DOM</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.1.0+</version> |
| <code> |
| <![CDATA[ |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals(Object o) { |
| if (this == o) { |
| return true; |
| } else if (!(o instanceof Extension)) { |
| return false; |
| } else { |
| Extension e = (Extension) o; |
| return java.util.Objects.equals(e.getArtifactId(), getArtifactId()) |
| && java.util.Objects.equals(e.getGroupId(), getGroupId()) |
| && java.util.Objects.equals(e.getVersion(), getVersion()); |
| } |
| } |
| |
| /** |
| * @see java.lang.Object#hashCode() |
| */ |
| public int hashCode() { |
| return java.util.Objects.hash(getArtifactId(), getGroupId(), getVersion()); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class locationTracker="locations"> |
| <name>InputLocation</name> |
| <version>4.0.0/4.0.99</version> |
| <fields> |
| <!-- line, column and source fields are auto-generated by Modello --> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| |
| @Override |
| public String toString() { |
| return getLineNumber() + " : " + getColumnNumber() + ", " + getSource(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class sourceTracker="source"> |
| <name>InputSource</name> |
| <version>4.0.0/4.0.99</version> |
| <fields> |
| <field> |
| <name>modelId</name> |
| <version>4.0.0+</version> |
| <type>String</type> |
| <description> |
| The identifier of the POM in the format {@code <groupId>:<artifactId>:<version>}. |
| </description> |
| </field> |
| <field> |
| <name>location</name> |
| <version>4.0.0+</version> |
| <type>String</type> |
| <description> |
| The path/URL of the POM or {@code null} if unknown. |
| </description> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>4.0.0+</version> |
| <code> |
| <![CDATA[ |
| @Override |
| public String toString() { |
| return getModelId() + " " + getLocation(); |
| } |
| ]]> |
| </code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| </classes> |
| </model> |