| <?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/PLUGIN/2.0.0" targetNamespace="http://maven.apache.org/PLUGIN/2.0.0"> |
| <xs:element name="plugin" type="PluginDescriptor"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Root element of the {@code plugin.xml} file.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:complexType name="PluginDescriptor"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Root element of the {@code plugin.xml} file.</xs:documentation> |
| </xs:annotation> |
| <xs:all> |
| <xs:element minOccurs="0" name="name" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Name of the plugin.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="description" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Description of the plugin.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="groupId" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">The group id of the plugin.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="artifactId" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">The artifact id of the plugin.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="version" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">The version of the plugin.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="goalPrefix" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"></xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="isolatedRealm" type="xs:boolean" default="false"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"></xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="inheritedByDefault" type="xs:boolean" default="true"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"></xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="requiredJavaVersion" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.1.0+</xs:documentation> |
| <xs:documentation source="description"> |
| A version range which specifies the supported Java versions. A version range can either use the usual mathematical syntax "[2.0.10,2.1.0),[3.0,)" or use a single version "2.2.1". The latter is a short form for "[2.2.1,)", i.e. denotes the minimum version required. |
| @since Maven 4.0.0-alpha-3 |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="requiredMavenVersion" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.1.0+</xs:documentation> |
| <xs:documentation source="description"> |
| A version range which specifies the supported Maven versions. A version range can either use the usual mathematical syntax "[2.0.10,2.1.0),[3.0,)" or use a single version "2.2.1". The latter is a short form for "[2.2.1,)", i.e. denotes the minimum version required. This value takes precedence over the POMs Maven prerequisite. |
| @since Maven 4.0.0-alpha-3 |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="mojos"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Description of each Mojo provided by the plugin.</xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element type="MojoDescriptor" name="mojo" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| </xs:all> |
| </xs:complexType> |
| <xs:complexType name="MojoDescriptor"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">A Mojo description.</xs:documentation> |
| </xs:annotation> |
| <xs:all> |
| <xs:element minOccurs="0" name="goal" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| The goal name for the Mojo, that users will reference from the command line to execute the Mojo directly, |
| or inside a POM in order to provide Mojo-specific configuration. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="description" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">The description of this Mojo's functionality.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="implementation" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| The Mojo's fully-qualified class name (or script path in the case of non-Java Mojos). |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="language" type="xs:string" default="java"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">The implementation language for this Mojo (java, beanshell, etc.).</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="phase" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Defines a default phase to bind a Mojo execution to if the user does not explicitly set a phase in the POM. |
| <p><b>Note:</b> This will not automagically make a Mojo run when the plugin declaration is added |
| to the POM. It merely enables the user to omit the {@code <phase>} element from the |
| surrounding {@code <execution>} element.</p> |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="executePhase" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Reference the invocation phase of the Mojo.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="executeGoal" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Reference the invocation goal of the Mojo.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="executeLifecycle" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"></xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="dependencyResolution" type="xs:string" default="runtime"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Flags this Mojo as requiring the dependencies in the specified class path to be resolved before it can |
| execute: {@code compile}, {@code runtime}, {@code test}, |
| {@code compile+runtime} (since Maven 3.0) or {@code runtime+system} (since Maven 3.0) |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="dependencyCollection" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Flags this Mojo as requiring information about the dependencies that would make up the specified class |
| path. As the name suggests, this is similar to requiresDependencyResolution and supports the same values. |
| The important difference is this will not resolve the files for the dependencies, i.e. the artifacts |
| associated with a Maven project can lack a file. As such, this annotation is meant for Mojos that only |
| want to analyze the set of transitive dependencies, in particular during early lifecycle phases where |
| full dependency resolution might fail due to projects which haven't been built yet. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="directInvocationOnly" type="xs:boolean" default="false"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">Flags this Mojo to be invoked directly only.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="projectRequired" type="xs:boolean" default="true"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">Flags this Mojo to require running inside of a project.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="onlineRequired" type="xs:boolean" default="false"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">Flags this Mojo to require online mode for its operation.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="aggregator" type="xs:boolean" default="false"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Flags this Mojo to run it in a multi-module way, i.e. aggregate the build with the set of projects |
| listed as modules. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="inheritedByDefault" type="xs:boolean" default="true"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Specify that the Mojo is inherited.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="since" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Specify the version when the Mojo was added to the API. Similar to Javadoc since.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="deprecated" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Description with the reason of Mojo deprecation. Similar to Javadoc {@code @deprecated} |
| This will trigger a warning when a user tries to use a Mojo marked as deprecated. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="configurator" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| The configurator type to use when injecting parameter values into this Mojo. The value is normally deduced |
| from the Mojo's implementation language, but can be specified to allow a custom ComponentConfigurator |
| implementation to be used. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="parameters"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"></xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element type="Parameter" name="parameter" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element minOccurs="0" name="resolutions"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description"></xs:documentation> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element type="Resolution" name="resolution" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element minOccurs="0" name="id" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">the id of the mojo, based on the goal name</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="fullGoalName" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">the full goal name</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:all> |
| </xs:complexType> |
| <xs:complexType name="Parameter"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">A parameter description.</xs:documentation> |
| </xs:annotation> |
| <xs:all> |
| <xs:element minOccurs="0" name="name" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| The name of the parameter, to be used while configuring this parameter from the Mojo's declared defaults |
| or from the POM. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="alias" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Specifies an alias which can be used to configure this parameter from the POM. |
| This is primarily useful to improve user-friendliness, where Mojo field names are not intuitive to the |
| user or are otherwise not conducive to configuration via the POM. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="type" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| The Java type for this parameter. This is used to validate the result of any expressions used to calculate |
| the value which should be injected into the Mojo for this parameter. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="required" type="xs:boolean" default="false"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Whether this parameter is required for the Mojo to function. This is used to validate the configuration |
| for a Mojo before it is injected, and before the Mojo is executed from some half-state. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="editable" type="xs:boolean" default="true"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Specifies that this parameter can be configured directly by the user (as in the case of POM-specified |
| configuration). This is useful when you want to force the user to use common POM elements rather than |
| plugin configurations, as in the case where you want to use the artifact's final name as a parameter. In |
| this case, you want the user to modify {@code <build><finalName/></build>} rather |
| than specifying a value for finalName directly in the plugin configuration section. It is also useful to |
| ensure that - for example - a List-typed parameter which expects items of type Artifact doesn't get a List |
| full of Strings. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="description" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">The description of this parameter's use inside the Mojo.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="since" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description">Specify the version when the parameter was added to the API. Similar to Javadoc since.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="deprecated" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">1.0.0+</xs:documentation> |
| <xs:documentation source="description"> |
| Description with the reason of parameter deprecation. Similar to Javadoc {@code @deprecated}. |
| This will trigger a warning when a user tries to configure a parameter marked as deprecated. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="expression" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">Parameter expression, to let user override default value with a user property, system property or project property.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="defaultValue" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">The default value, as an expression that will be evaluated at injection or run-time.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:all> |
| </xs:complexType> |
| <xs:complexType name="Resolution"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">Dependency collection or resolution injection.</xs:documentation> |
| </xs:annotation> |
| <xs:all> |
| <xs:element minOccurs="0" name="field" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">the name of the field to be injected</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="pathScope" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">pathScope used to flatten dependencies</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element minOccurs="0" name="requestType" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation source="version">2.0.0+</xs:documentation> |
| <xs:documentation source="description">either {@code collect}, {@code flatten}, or {@code resolve}</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:all> |
| </xs:complexType> |
| </xs:schema> |