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>
* @inheritByDefault <true|false>
* @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>
* @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 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;
/**
* @component
*/
private MavenSession session;
/**
* @component
*/
private MavenProject project;
/**
* @component
*/
private MojoExecution mojo;
/**
* @component
*/
private PluginDescriptor plugin;
/**
* @component
*/
private Settings settings;
public void execute()
{
...
}
}
Annotations
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.plugins.annotations.ResolutionScope;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Execute;
import org.apache.maven.plugins.annotations.InstantiationStrategy;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
/**
* Mojo Description. @Mojo( name = "<goal-name>" ) is the minimal required annotation.
* @since <since-text>
* @deprecated <deprecated-text>
*/
@Mojo( name = "<goal-name>",
aggregator = <false|true>,
configurator = "<role hint>",
executionStrategy = "<once-per-session|always>",
inheritByDefault = <true|false>,
instantiationStrategy = InstantiationStrategy.<strategy>,
defaultPhase = "<phase-name>",
requiresDependencyResolution = ResolutionScope.<scope>,
requiresDependencyCollection = ResolutionScope.<scope>, // (since Maven 3.0)
requiresDirectInvocation = <false|true>,
requiresOnline = <false|true>,
requiresProject = <true|false>,
requiresReports = <false|true>, // (unsupported since Maven 3.0)
threadSafe = <false|true> ) // (since Maven 3.0)
@Execute( goal = "<goal-name>",
phase = LifecyclePhase.<phase>
lifecycle = "<lifecycle-id>" )
public class MyMojo
extends AbstractMojo
{
/**
* @since <since-text>
* @deprecated <deprecated-text>
*/
@Parameter( alias = "myAlias",
property = "a.property",
defaultValue = "an expression with ${variables} eventually",
readonly = <false|true>
required = <false|true> )
private String parameter;
@Component( role = MyComponentExtension.class,
hint = "..." )
private MyComponent component;
@Component
private MavenSession session;
@Component
private MavenProject project;
@Component
private MojoExecution mojo;
@Component // for Maven 3 only
private PluginDescriptor plugin;
@Component
private Settings settings;
public void execute()
{
...
}
}