Added: maven/website/content/xsd/maven-4.1.0-rc-4.xsd ============================================================================== --- maven/website/content/xsd/maven-4.1.0-rc-4.xsd (added) +++ maven/website/content/xsd/maven-4.1.0-rc-4.xsd Thu Jun 26 06:39:33 2025 @@ -0,0 +1,2791 @@ +<?xml version="1.0"?> +<!-- 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. --> +<!-- =================== DO NOT EDIT THIS FILE ==================== --> +<!-- Generated by Modello 2.4.0, --> +<!-- any modifications will be overwritten. --> +<!-- ============================================================== --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/POM/4.1.0" targetNamespace="http://maven.apache.org/POM/4.1.0"> + <xs:element name="project" type="Model"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + The {@code <project>} element is the root of the descriptor. + The following table lists all of the possible child elements. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="Model"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + The {@code <project>} element is the root of the descriptor. + The following table lists all of the possible child elements. + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="modelVersion" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Declares to which version of project descriptor this POM conforms.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="parent" type="Parent"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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}). + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="version" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The current version of the artifact produced by this project.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="packaging" type="xs:string" default="jar"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + The type of artifact this project produces, 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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The full name of the project.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="description" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + The URL to the project's homepage. + <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> + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="inceptionYear" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The year of the project's inception, specified with 4 digits. This value is + used when generating copyright notices as well as being informational.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="organization" type="Organization"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">This element describes various attributes of the organization to which the + project belongs. These attributes are utilized when documentation is created (for + copyright notices and links).</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="licenses"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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. + + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="License" name="license" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="developers"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Describes the committers of a project.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Developer" name="developer" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="contributors"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Describes the contributors to a project that are not yet committers.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Contributor" name="contributor" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="mailingLists"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Contains information about a project's mailing lists.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="MailingList" name="mailingList" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="prerequisites" type="Prerequisites"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Describes the prerequisites in the build environment for this project.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="modules"> + <xs:annotation> + <xs:documentation source="version">[4.0.0 => 4.1.0]</xs:documentation> + <xs:documentation source="description"> + @deprecated Use {@link #subprojects} instead. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="module" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="subprojects"> + <xs:annotation> + <xs:documentation source="version">4.1.0</xs:documentation> + <xs:documentation source="description">The subprojects (formerly called modules) to build as a part of this + project. Each subproject listed is a relative path to the directory containing the subproject. + To be consistent with the way default URLs are calculated from parent, it is recommended + to have subproject names match artifact ids.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="subproject" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="scm" type="Scm"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Specification for the SCM used by the project, such as CVS, Subversion, etc.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="issueManagement" type="IssueManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The project's issue management system information.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="ciManagement" type="CiManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The project's continuous integration information.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="distributionManagement" type="DistributionManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Distribution information for a project that enables deployment of the site + and artifacts to remote web servers and repositories respectively.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="properties"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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>}. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="dependencyManagement" type="DependencyManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="dependencies"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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> + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="repositories"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The lists of the remote repositories for discovering dependencies and + extensions.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="pluginRepositories"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The lists of the remote repositories for discovering plugins for builds and + reports.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="build" type="Build"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Information required to build the project.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="reporting" type="Reporting"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="profiles"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">A listing of project-local build profiles which will modify the build process + when activated.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Profile" name="profile" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="child.project.url.inherit.append.path" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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 + + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="root" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.1.0+</xs:documentation> + <xs:documentation source="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 + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="preserve.model.version" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.1.0+</xs:documentation> + <xs:documentation source="description"> + Indicates if the build POM for this project should be preserved or downgraded to the lowest + compatible version. + @since Maven 4.0.0 + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="License"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The full legal name of the license.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The official url for the license text.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="distribution" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="comments" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Addendum information pertaining to this license.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="CiManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + The {@code <ciManagement>} element contains information required to the + continuous integration system of the project. + + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="system" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + The name of the continuous integration system, e.g. {@code continuum}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + URL for the continuous integration system used by the project if it has a web interface. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="notifiers"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Configuration for notifying developers/users when a build is unsuccessful, + including user information and notification mode.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Notifier" name="notifier" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Notifier"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Configures one method for notifying users/developers when a build breaks.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="type" type="xs:string" default="mail"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The mechanism used to deliver notifications.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="sendOnError" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Whether to send notifications on error.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="sendOnFailure" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Whether to send notifications on failure.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="sendOnSuccess" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Whether to send notifications on success.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="sendOnWarning" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Whether to send notifications on warning.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="address" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + @deprecated Where to send the notification to - eg email address. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="configuration"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Extended configuration specific to this notifier goes here.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Scm"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + The {@code <scm>} element contains information required to the SCM + (Source Control Management) of the project. + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="connection" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="developerConnection" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="tag" type="xs:string" default="HEAD"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The tag of current code. By default, it's set to HEAD during development.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + <xs:attribute name="child.scm.connection.inherit.append.path" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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 + + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="child.scm.developerConnection.inherit.append.path" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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 + + </xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="child.scm.url.inherit.append.path" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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 + + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="IssueManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Information about the issue tracking (or bug tracking) system used to manage this + project.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="system" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The name of the issue management system, e.g. Bugzilla</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">URL for the issue management system used by the project.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="DependencyManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Section for management of default dependency information for use in a group of + POMs.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="dependencies"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Dependency"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + The {@code <dependency>} element contains information about a dependency + of the project. + + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + The project group that produced the dependency, e.g. + {@code org.apache.maven}. + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + The unique id for an artifact produced by the project group, e.g. + {@code maven-artifact}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="version" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + The version requirement of the dependency, e.g. {@code 3.2.1}. The actual version will be resolved based on the usage context. + Version requirement can also be specified as a range of versions, e.g. {@code [3.2.0,)}. This is discouraged as it may break <i>predictability</i> of resolved version. + See <a href="https://s.apache.org/dependency-version">dependency version requirement documentation</a> + and <a href="https://s.apache.org/transitive-dependencies-resolution">transitive dependencies resolution</a> for more details. + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="type" type="xs:string" default="jar"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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. + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="classifier" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="scope" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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}. + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="systemPath" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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}}. + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="exclusions"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Lists a set of artifacts that should be excluded from this dependency's + artifact list when it comes to calculating transitive dependencies.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Exclusion" name="exclusion" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="optional" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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}. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Exclusion"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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 + + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The group ID of the project to exclude.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The artifact ID of the project to exclude.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Parent"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The group id of the parent project to inherit from.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The artifact id of the parent project to inherit from.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="version" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The version of the parent project to inherit.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="relativePath" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + The relative path of the parent subproject POM file or directory within the checkout. + If not specified, it defaults to {@code ..}, i.e. the parent directory. + Maven looks for the parent POM first in this location on + the filesystem if explicitly provided, then in the reactor if groupId and artifactId are provided, + then in the default parent directory, then the local repository, and lastly in the remote repo. + However, if the both relative path and the group ID / artifact ID are provided, + they must match the file in the location given. + Specify either the {@code relativePath} or the {@code groupId}/{@code artifactId}, not both. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Developer"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Information about one of the committers on this project.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="id" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The unique ID of the developer in the SCM.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The full name of the contributor.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="email" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The email address of the contributor.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The URL for the homepage of the contributor.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="organization" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The organization to which the contributor belongs.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="organizationUrl" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The URL of the organization.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="roles"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="role" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="timezone" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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). + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="properties"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Properties about the contributor, such as an instant messenger handle.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="MailingList"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">This element describes all of the mailing lists associated with a project. The + auto-generated site references this information.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + The name of the mailing list. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="subscribe" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="unsubscribe" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="post" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="archive" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The link to a URL where you can browse the mailing list archive.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="otherArchives"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The link to alternate URLs where you can browse the list archive.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="otherArchive" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Contributor"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The full name of the contributor.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="email" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The email address of the contributor.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The URL for the homepage of the contributor.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="organization" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The organization to which the contributor belongs.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="organizationUrl" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The URL of the organization.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="roles"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="role" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="timezone" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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). + + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="properties"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Properties about the contributor, such as an instant messenger handle.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Organization"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">Specifies the organization that produces this project.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The full name of the organization.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="description">The URL to the organization's home page.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="DistributionManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="repository" type="DeploymentRepository"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Information needed to deploy the artifacts generated by the project to a + remote repository.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="snapshotRepository" type="DeploymentRepository"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + Where to deploy snapshots of artifacts to. If not given, it defaults to the + {@code repository} element. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="site" type="Site"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Information needed for deploying the web site of the project.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="downloadUrl" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="relocation" type="Relocation"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + Relocation information of the artifact if it has been moved to a new group ID + and/or artifact ID. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="status" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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 a 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). + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="DeploymentRepository"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Deployment repository contains the information needed for deploying to the remote + repository, which adds uniqueVersion property to usual repositories for download.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="uniqueVersion" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Whether to assign snapshots a unique version comprised of the timestamp and + build number, or to use the same version each time</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="releases" type="RepositoryPolicy"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">How to handle downloading of releases from this repository.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">How to handle downloading of snapshots from this repository.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="id" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Human readable name of the repository.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + The url of the repository, in the form {@code protocol://hostname/path}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="layout" type="xs:string" default="default"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + The type of layout this repository uses for locating and storing artifacts - + can be {@code legacy} or {@code default}. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="RepositoryPolicy"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Download policy.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="enabled" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="updatePolicy" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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). + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="checksumPolicy" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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 3). + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Relocation"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The group ID the artifact has moved to.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The new artifact ID of the artifact.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="version" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The new version of the artifact.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="message" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">An additional message to show the user about the move, such as the reason.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Site"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Contains the information needed for deploying websites.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="id" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Human readable name of the deployment location.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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> + + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + <xs:attribute name="child.site.url.inherit.append.path" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + 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 + + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="Reporting"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Section for management of reports and their configuration.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="excludeDefaults" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="outputDirectory" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + Where to store all the generated reports. The default is + {@code ${project.build.directory}/site}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="plugins"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The reporting plugins to use and their configuration.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="ReportPlugin" name="plugin" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ReportPlugin"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description"> + + The {@code <plugin>} element in {@code <reporting><plugins>} contains information required for a report plugin. + + </xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string" default="org.apache.maven.plugins"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The group ID of the reporting plugin in the repository.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The artifact ID of the reporting plugin in the repository.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="version" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="reportSets"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="ReportSet" name="reportSet" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="inherited" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="configuration"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description"> + + <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> + + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ReportSet"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Represents a set of reports and configuration to be used to generate them.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="id" type="xs:string" default="default"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">The unique id for this report set, to be used during POM inheritance and profile injection + for merging of report sets. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="reports"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The list of reports from this plugin which should be generated from this set.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="report" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="inherited" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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}. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="configuration"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description"> + + <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> + + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Profile"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Modifications to the build process which is activated based on environmental + parameters or command line arguments.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="id" type="xs:string" default="default"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The identifier of this build profile. This is used for command line + activation, and identifies profiles to be merged. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="activation" type="Activation"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The conditional logic which will automatically trigger the inclusion of this + profile.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="build" type="BuildBase"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Information required to build the project.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="modules"> + <xs:annotation> + <xs:documentation source="version">[4.0.0 => 4.1.0]</xs:documentation> + <xs:documentation source="description"> + @deprecated Use {@link #subprojects} instead. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="module" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="subprojects"> + <xs:annotation> + <xs:documentation source="version">4.1.0</xs:documentation> + <xs:documentation source="description">The subprojects (formerly called modules) to build as a part of this + project. Each subproject listed is a relative path to the directory containing the subproject. + To be consistent with the way default URLs are calculated from parent, it is recommended + to have subproject names match artifact ids.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="subproject" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="distributionManagement" type="DistributionManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">Distribution information for a project that enables deployment of the site + and artifacts to remote web servers and repositories respectively.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="properties"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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>}. + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="dependencyManagement" type="DependencyManagement"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="dependencies"> + <xs:annotation> + <xs:documentation source="version">3.0.0+</xs:documentation> + <xs:documentation source="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> + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="repositories"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The lists of the remote repositories for discovering dependencies and + extensions.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="pluginRepositories"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="description">The lists of the remote repositories for discovering plugins for builds and + reports.</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="reporting" type="Reporting"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Activation"> + <xs:annotation> + <xs:documentation source="version">4.0.0+</xs:documentation> + <xs:documentation source="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. + + <p>In addition to the traditional activation mechanisms (JDK version, OS properties, + file existence, etc.), Maven now supports a powerful condition-based activation + through the {@code condition} field. This new mechanism allows for more flexible + and expressive profile activation rules.</p> + + <h2>Condition Syntax</h2> + + <p>The condition is specified as a string expression that can include various + functions, comparisons, and logical operators. Some key features include:</p> + + <ul> + <li>Property access: {@code ${property.name}}</li> + <li>Comparison operators: {@code ==}, {@code !=}, {@code <}, {@code >}, {@code <=}, {@code >=}</li> + <li>Logical operators: {@code &&} (AND), {@code ||} (OR), {@code not(...)}</li> + <li>Functions: {@code exists(...)}, {@code missing(...)}, {@code matches(...)}, {@code inrange(...)}, and more</li> + </ul> +
[... 1070 lines stripped ...]
