Maven Plugin Tool for Java Annotated with Mojo Javadoc Tags
This Mojo descriptor extractor is deprecated and should no longer be used. Rely on Maven Plugin Tool for Annotations instead.
The Maven Plugin Tool for Java is the java-javadoc
implementation of maven-plugin-tools-api to extract descriptors for plugins written in Java annotated with Mojo Javadoc Tags.
Supported Mojo Javadoc Tags
import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.project.MavenProject; import org.apache.maven.settings.Settings; /** * Mojo Description: goal is the only required annotation. * * @goal <goalName> * @aggregator * @configurator <roleHint> * @execute phase="<phaseName>" lifecycle="<lifecycleId>" goal="<goalName>" * @executionStrategy <once-per-session|always> (unsupported since Maven 3.0) * @inheritByDefault <true|false> (unsupported since Maven 3.0) * @instantiationStrategy <per-lookup|singleton|keep-alive|poolable> * @phase <phaseName> * @requiresDependencyResolution <compile|runtime|compile+runtime|test> * @requiresDependencyCollection <compile|runtime|compile+runtime|test> (since Maven 3.0) * @requiresDirectInvocation <false|true> (unsupported since Maven 3.0) * @requiresOnline <false|true> * @requiresProject <true|false> * @requiresReports <false|true> (unsupported since Maven 3.0) * @threadSafe (since Maven 3.0) * @since <since-text> * @deprecated <deprecated-text> */ public class MyMojo extends AbstractMojo { /** * Parameter description. * * @parameter name="parameter" alias="myAlias" implementation="" property="aProperty" default-value="${anExpression}" * @readonly * @required * @since <since-text> * @deprecated <deprecated-text> */ private String parameter; /** * @component role="..." roleHint="..." */ private Component component; // sample objects taken from Maven API through PluginParameterExpressionEvaluator /** * @parameter default-value="${session}" * @readonly */ private MavenSession session; /** * @parameter default-value="${project}" * @readonly */ private MavenProject project; /** * @parameter default-value="${mojoExecution}" * @readonly */ private MojoExecution mojo; /** * @parameter default-value="${plugin}" // Maven 3 only * @readonly */ private PluginDescriptor plugin; /** * @parameter default-value="${settings}" * @readonly */ private Settings settings; /** * @parameter default-value="${project.basedir}" * @readonly */ private File basedir; /** * @parameter default-value="${project.build.directory}" * @readonly */ private File target; public void execute() { ... } }
Notice: before 3.0, property
was replaced by expression
, with ${ }
required (expression="${aProperty}"
), but starting with 3.0, you can omit it (expression="aProperty"
), or preferably use property="aProperty"
.
See also
- Mojo API Specification
META-INF/maven/plugin.xml
plugin descriptor- PluginParameterExpressionEvaluator, used to evaluate plugin parameters values during Mojo configuration,