This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/plugin-descriptor-v1.1-xsd in repository https://gitbox.apache.org/repos/asf/maven-site.git
commit cb22bfd8e3fb9d69b360b3051780cd1eac65defc Author: Konrad Windszus <[email protected]> AuthorDate: Fri Oct 14 14:44:12 2022 +0200 [MNG-7566] Plugin descriptor 1.1.0 adding element "requiredJavaVersion" --- content/resources/xsd/plugin-1.1.0.xsd | 484 +++++++++++++++++++++++++++++++++ 1 file changed, 484 insertions(+) diff --git a/content/resources/xsd/plugin-1.1.0.xsd b/content/resources/xsd/plugin-1.1.0.xsd new file mode 100644 index 00000000..bb046e34 --- /dev/null +++ b/content/resources/xsd/plugin-1.1.0.xsd @@ -0,0 +1,484 @@ +<?xml version="1.0"?> +<!-- =================== DO NOT EDIT THIS FILE ==================== --> +<!-- Generated by Modello 2.0.0, --> +<!-- any modifications will be overwritten. --> +<!-- ============================================================== --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/PLUGIN/1.1.0" targetNamespace="http://maven.apache.org/PLUGIN/1.1.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</code> 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</code> 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. The same values as for POM profile activation element 'jdk' are allowed, i.e. version ranges, version prefixes and negated version prefixes (starting with '!').</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 name="mojo" minOccurs="0" maxOccurs="unbounded" type="MojoDescriptor"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="dependencies"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"> + A set of dependencies which the plugin requires in order to function. This enables the plugin to function + independently of its POM (or at least to declare the libraries it needs to run). + </xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Dependency"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">Definition of a dependency, needed by the plugin at runtime.</xs:documentation> + </xs:annotation> + <xs:all> + <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 dependency.</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 dependency.</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 dependency.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="type" type="xs:string" default="jar"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">The type of dependency.</xs:documentation> + </xs:annotation> + </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. + <i>Note:</i> 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>&lt;phase&gt;</code> element from the + surrounding <code>&lt;execution&gt;</code> element. + </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="requiresDependencyResolution" type="xs:string" default="runtime"> + <xs:annotation> + <xs:documentation source="version">1.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>, <code>runtime</code>, <code>test</code>, + <code>compile+runtime</code> (since Maven 3.0) or <code>runtime+system</code> (since Maven 3.0) + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="requiresDependencyCollection" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">1.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="requiresDirectInvocation" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation source="version">1.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="requiresProject" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">1.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="requiresReports" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">Flags this Mojo to require running inside of a reports context. Unsupported since Maven 3.0.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="requiresOnline" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation source="version">1.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="threadSafe" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"> + Marks this mojo as being thread-safe, i.e. the mojo safely supports concurrent execution during parallel + builds. Mojos without this annotation will make Maven output a warning when used during a parallel build + session. Since Maven 3.0. + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="instantiationStrategy" type="xs:string" default="per-lookup"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">Specify the instantiation strategy.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="executionStrategy" type="xs:string" default="once-per-session"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"> + Specify the execution strategy: <code>once-per-session</code>, <code>always</code>. + </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</code> + 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="composer" 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="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 name="parameter" minOccurs="0" maxOccurs="unbounded" type="Parameter"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="configuration"> + <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 name="paramName" minOccurs="0" maxOccurs="unbounded" type="Configuration"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="requirements"> + <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 name="requirement" minOccurs="0" maxOccurs="unbounded" type="Requirement"/> + </xs:sequence> + </xs:complexType> + </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 phase mapping definition.</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>&lt;build&gt;&lt;finalName/&gt;&lt;/build&gt;</code> 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="implementation" 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="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</code> + This will trigger a warning when a user tries to configure a parameter marked as deprecated. + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Requirement"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">Describes a component requirement.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="role" 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="role-hint" 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="field-name" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">The field name which has this requirement.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Configuration"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description">A parameter configuration.</xs:documentation> + </xs:annotation> + <xs:attribute name="implementation" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"></xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="default-value" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">1.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:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> +</xs:schema> \ No newline at end of file
