metamaven:meta-meta-plugin

Full name:

io.github.rmichela:meta-maven-plugin-maven-plugin:1.0.2:meta-meta-plugin

Description:

Generates the code for implementing a meta-plugin mojo, using Maven native Plugin configuration in from POM. When executed as a plugin, the generated mojo executes multiple Maven plugins in order.

If the configured plugins bind to multiple Maven phases, the meta-plugin will generate a separate mojo for each phase.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: generate-sources.

Required Parameters

Name Type Since Description
<plugins> List<Plugin> - A <plugin> element for each plugin to be executed. The plugins follow the same format as build plugins.

Plugin phases (default and explicit) determine which meta-plugin goals are generated.

Optional Parameters

Name Type Since Description
<documentation> Documentation - Documentation for the meta-plugin.
  • overall - Overall documentation for the overall meta-plugin.
  • phases - Key/value paris of additional documentation for maven build phases. Keys must be valid maven phase names in use by one of the embedded plugins. Values are documentation strings.

For rich text HTML, use <![CDATA[]]> escaping in the pom.

<packageName> String - The name of the package for the generated meta plugin.

By default, the package name will be calculated as groupId + "." + artifactId with additional

  • - (dashes) will be replaced by _ (underscores)
  • _ (underscore) will be added before each number or Java keyword at the beginning of name
<parameters> List<Parameter> - A list of parameters for use by the generated meta plugin. Has the same properties as Parameter.
  • name - The name of the property. Must be a valid Java field name.
  • description - Documentation of the parameter's purpose. For rich text HTML, use <![CDATA[]]> escaping in the pom.
  • alias - An alias name of the parameter in the POM.
  • property - Property to use to retrieve a value. Can come from -D execution, setting properties or pom properties.
  • defaultValue - The default value of the parameter. This value can be an interpolated expression.
  • required - Whether the parameter is required.
  • readonly - Whether the parameter is readonly and should not be set by the user. Used to capture values from the Maven project context.

Parameter default values can be interpolated during Maven's execution.

  • Expressions like ${} are evaluated during meta-plugin code generation.
  • Expressions like #{} are evaluated during meta-plugin execution.

Parameter Details

<documentation>

Documentation for the meta-plugin.
  • overall - Overall documentation for the overall meta-plugin.
  • phases - Key/value paris of additional documentation for maven build phases. Keys must be valid maven phase names in use by one of the embedded plugins. Values are documentation strings.

For rich text HTML, use <![CDATA[]]> escaping in the pom.

  • Type: metamaven.Documentation
  • Required: No

<packageName>

The name of the package for the generated meta plugin.

By default, the package name will be calculated as groupId + "." + artifactId with additional

  • - (dashes) will be replaced by _ (underscores)
  • _ (underscore) will be added before each number or Java keyword at the beginning of name
  • Type: java.lang.String
  • Required: No

<parameters>

A list of parameters for use by the generated meta plugin. Has the same properties as Parameter.
  • name - The name of the property. Must be a valid Java field name.
  • description - Documentation of the parameter's purpose. For rich text HTML, use <![CDATA[]]> escaping in the pom.
  • alias - An alias name of the parameter in the POM.
  • property - Property to use to retrieve a value. Can come from -D execution, setting properties or pom properties.
  • defaultValue - The default value of the parameter. This value can be an interpolated expression.
  • required - Whether the parameter is required.
  • readonly - Whether the parameter is readonly and should not be set by the user. Used to capture values from the Maven project context.

Parameter default values can be interpolated during Maven's execution.

  • Expressions like ${} are evaluated during meta-plugin code generation.
  • Expressions like #{} are evaluated during meta-plugin execution.
  • Type: java.util.List<metamaven.Parameter>
  • Required: No

<plugins>

A <plugin> element for each plugin to be executed. The plugins follow the same format as build plugins.

Plugin phases (default and explicit) determine which meta-plugin goals are generated.

  • Type: java.util.List<metamaven.Plugin>
  • Required: Yes