plugin:descriptor

Full name:

org.apache.maven.plugins:maven-plugin-plugin:3.14.0:descriptor

Description:

Generate a plugin descriptor.

Note: Since 3.0, for Java plugin annotations support, default phase defined by this goal is after the "compilation" of any scripts. This doesn't override the default binding coded at generate-resources phase in Maven core.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile+runtime.
  • The goal is thread-safe and supports parallel builds.
  • Since version: 2.0.
  • Binds by default to the lifecycle phase: process-classes.

Optional Parameters

Name Type Since Description
<checkExpectedProvidedScope> boolean 3.6.3 Flag controlling is "expected dependencies in provided scope" check to be performed or not. Default value: true.
Default: true
User Property: maven.plugin.checkExpectedProvidedScope
<encoding> String 2.5 The file encoding of the source files.
Default: ${project.build.sourceEncoding}
User Property: encoding
<expectedProvidedScopeExclusions> List<String> 3.6.3 List of groupId:artifactId strings of artifact coordinates that are to be excluded from "expected provided scope" check. Default value: ["org.apache.maven:maven-archiver", "org.apache.maven:maven-jxr", "org.apache.maven:plexus-utils"].
<expectedProvidedScopeGroupIds> List<String> 3.6.3 List of groupId strings of artifact coordinates that are expected to be in "provided" scope. Default value: ["org.apache.maven"].
<externalJavadocBaseUrls> List<URI> 3.7.0 Creates links to existing external javadoc-generated documentation.
Notes: all given links should have a fetchable /package-list or /element-list file. For instance:
<externalJavadocBaseUrls>
  <externalJavadocBaseUrl>https://docs.oracle.com/javase/8/docs/api/</externalJavadocBaseUrl>
</externalJavadocBaseUrls>
is valid because https://docs.oracle.com/javase/8/docs/api/package-list exists. See link option of the javadoc tool. Using this parameter requires connectivity to the given URLs during the goal execution.
User Property: externalJavadocBaseUrls
Alias: links
<extractors> Set<String> -

The role names of mojo extractors to use.

If not set, all mojo extractors will be used. If set to an empty extractor name, no mojo extractors will be used.

Example:
 <!-- Use all mojo extractors -->
 <extractors/>

 <!-- Use no mojo extractors -->
 <extractors>
     <extractor/>
 </extractors>

 <!-- Use only bsh mojo extractor -->
 <extractors>
     <extractor>bsh</extractor>
 </extractors>
The extractors with the following names ship with maven-plugin-tools:
  1. java-annotations
  2. java-javadoc, deprecated
  3. ant, deprecated
  4. bsh, deprecated
<goalPrefix> String - The goal prefix that will appear before the ":".
<internalJavadocBaseUrl> URI 3.7.0 The base URL for the Javadoc site containing the current project's API documentation. This may be relative to the root of the generated Maven site. It does not need to exist yet at the time when this goal is executed. Must end with a slash. In case this is set the javadoc reporting goal should be executed prior to Plugin Report.
User Property: internalJavadocBaseUrl
<internalJavadocVersion> String 3.7.0 The version of the javadoc tool (equal to the container JDK version) used to generate the internal javadoc Only relevant if internalJavadocBaseUrl is set. The default value needs to be overwritten in case toolchains are being used for generating Javadoc.
Default: ${java.version}
User Property: internalJavadocVersion
<mojoDependencies> List<String> 3.5 Specify the dependencies as groupId:artifactId containing (abstract) Mojos, to filter dependencies scanned at runtime and focus on dependencies that are really useful to Mojo analysis. By default, the value is null and all dependencies are scanned (as before this parameter was added). If specified in the configuration with no children, no dependencies are scanned.
<packagingTypes> List<String> 3.3 Maven plugin packaging types. Default is single "maven-plugin".
<requiredJavaVersion> String 3.8.0 The required Java version to set in the plugin descriptor. This is evaluated by Maven 4 and ignored by earlier Maven versions. Can be either one of the following formats:
  • A version range which specifies the supported Java versions. It can either use the usual mathematical syntax like "[1.7,9),[11,)" or use a single version like "1.8". The latter is a short form for "[1.8,)", i.e. denotes the minimum version required.
  • "auto" to determine the minimum Java version from the binary class version being generated during compilation (determined by the extractor).

Default: auto
<requiredMavenVersion> String 3.8.0 The required Maven version to set in the plugin descriptor. This is evaluated by Maven 4 and ignored by earlier Maven versions. Can be either one of the following formats:
  • A version range which specifies the supported Maven versions. It can either use the usual mathematical syntax like "[2.0.10,2.1.0),[3.0,)" or use a single version like "2.2.1". The latter is a short form for "[2.2.1,)", i.e. denotes the minimum version required.
  • "auto" to determine the minimum Maven version from the POM's Maven prerequisite, or if not set the referenced Maven Plugin API version.
This value takes precedence over the POM's Maven prerequisite in Maven 4.
Default: auto
<skip> boolean 2.8 Set this to "true" to skip invoking any goals or reports of the plugin.
Default: false
User Property: maven.plugin.skip
<skipDescriptor> boolean 2.6 A flag to disable generation of the plugin.xml in favor of a hand authored plugin descriptor.
Default: false
<skipErrorNoDescriptorsFound> boolean 3.0 By default, an exception is throw if no mojo descriptor is found. As the maven-plugin is defined in core, the descriptor generator mojo is bound to generate-resources phase. But for annotations, the compiled classes are needed, so skip error
Default: false
User Property: maven.plugin.skipErrorNoDescriptorsFound

Parameter Details

<checkExpectedProvidedScope>

Flag controlling is "expected dependencies in provided scope" check to be performed or not. Default value: true.
  • Type: boolean
  • Since: 3.6.3
  • Required: No
  • User Property: maven.plugin.checkExpectedProvidedScope
  • Default: true

<encoding>

The file encoding of the source files.
  • Type: java.lang.String
  • Since: 2.5
  • Required: No
  • User Property: encoding
  • Default: ${project.build.sourceEncoding}

<expectedProvidedScopeExclusions>

List of groupId:artifactId strings of artifact coordinates that are to be excluded from "expected provided scope" check. Default value: ["org.apache.maven:maven-archiver", "org.apache.maven:maven-jxr", "org.apache.maven:plexus-utils"].
  • Type: java.util.List<java.lang.String>
  • Since: 3.6.3
  • Required: No

<expectedProvidedScopeGroupIds>

List of groupId strings of artifact coordinates that are expected to be in "provided" scope. Default value: ["org.apache.maven"].
  • Type: java.util.List<java.lang.String>
  • Since: 3.6.3
  • Required: No

<externalJavadocBaseUrls>

Creates links to existing external javadoc-generated documentation.
Notes: all given links should have a fetchable /package-list or /element-list file. For instance:
<externalJavadocBaseUrls>
  <externalJavadocBaseUrl>https://docs.oracle.com/javase/8/docs/api/</externalJavadocBaseUrl>
</externalJavadocBaseUrls>
is valid because https://docs.oracle.com/javase/8/docs/api/package-list exists. See link option of the javadoc tool. Using this parameter requires connectivity to the given URLs during the goal execution.
  • Type: java.util.List<java.net.URI>
  • Since: 3.7.0
  • Required: No
  • User Property: externalJavadocBaseUrls
  • Alias: links

<extractors>

The role names of mojo extractors to use.

If not set, all mojo extractors will be used. If set to an empty extractor name, no mojo extractors will be used.

Example:
 <!-- Use all mojo extractors -->
 <extractors/>

 <!-- Use no mojo extractors -->
 <extractors>
     <extractor/>
 </extractors>

 <!-- Use only bsh mojo extractor -->
 <extractors>
     <extractor>bsh</extractor>
 </extractors>
The extractors with the following names ship with maven-plugin-tools:
  1. java-annotations
  2. java-javadoc, deprecated
  3. ant, deprecated
  4. bsh, deprecated
  • Type: java.util.Set<java.lang.String>
  • Required: No

<goalPrefix>

The goal prefix that will appear before the ":".
  • Type: java.lang.String
  • Required: No

<internalJavadocBaseUrl>

The base URL for the Javadoc site containing the current project's API documentation. This may be relative to the root of the generated Maven site. It does not need to exist yet at the time when this goal is executed. Must end with a slash. In case this is set the javadoc reporting goal should be executed prior to Plugin Report.
  • Type: java.net.URI
  • Since: 3.7.0
  • Required: No
  • User Property: internalJavadocBaseUrl

<internalJavadocVersion>

The version of the javadoc tool (equal to the container JDK version) used to generate the internal javadoc Only relevant if internalJavadocBaseUrl is set. The default value needs to be overwritten in case toolchains are being used for generating Javadoc.
  • Type: java.lang.String
  • Since: 3.7.0
  • Required: No
  • User Property: internalJavadocVersion
  • Default: ${java.version}

<mojoDependencies>

Specify the dependencies as groupId:artifactId containing (abstract) Mojos, to filter dependencies scanned at runtime and focus on dependencies that are really useful to Mojo analysis. By default, the value is null and all dependencies are scanned (as before this parameter was added). If specified in the configuration with no children, no dependencies are scanned.
  • Type: java.util.List<java.lang.String>
  • Since: 3.5
  • Required: No

<packagingTypes>

Maven plugin packaging types. Default is single "maven-plugin".
  • Type: java.util.List<java.lang.String>
  • Since: 3.3
  • Required: No

<requiredJavaVersion>

The required Java version to set in the plugin descriptor. This is evaluated by Maven 4 and ignored by earlier Maven versions. Can be either one of the following formats:
  • A version range which specifies the supported Java versions. It can either use the usual mathematical syntax like "[1.7,9),[11,)" or use a single version like "1.8". The latter is a short form for "[1.8,)", i.e. denotes the minimum version required.
  • "auto" to determine the minimum Java version from the binary class version being generated during compilation (determined by the extractor).
  • Type: java.lang.String
  • Since: 3.8.0
  • Required: No
  • Default: auto

<requiredMavenVersion>

The required Maven version to set in the plugin descriptor. This is evaluated by Maven 4 and ignored by earlier Maven versions. Can be either one of the following formats:
  • A version range which specifies the supported Maven versions. It can either use the usual mathematical syntax like "[2.0.10,2.1.0),[3.0,)" or use a single version like "2.2.1". The latter is a short form for "[2.2.1,)", i.e. denotes the minimum version required.
  • "auto" to determine the minimum Maven version from the POM's Maven prerequisite, or if not set the referenced Maven Plugin API version.
This value takes precedence over the POM's Maven prerequisite in Maven 4.
  • Type: java.lang.String
  • Since: 3.8.0
  • Required: No
  • Default: auto

<skip>

Set this to "true" to skip invoking any goals or reports of the plugin.
  • Type: boolean
  • Since: 2.8
  • Required: No
  • User Property: maven.plugin.skip
  • Default: false

<skipDescriptor>

A flag to disable generation of the plugin.xml in favor of a hand authored plugin descriptor.
  • Type: boolean
  • Since: 2.6
  • Required: No
  • Default: false

<skipErrorNoDescriptorsFound>

By default, an exception is throw if no mojo descriptor is found. As the maven-plugin is defined in core, the descriptor generator mojo is bound to generate-resources phase. But for annotations, the compiled classes are needed, so skip error
  • Type: boolean
  • Since: 3.0
  • Required: No
  • User Property: maven.plugin.skipErrorNoDescriptorsFound
  • Default: false