145 lines
4.4 KiB
Plaintext
145 lines
4.4 KiB
Plaintext
------
|
|
Introduction
|
|
------
|
|
Vincent Siveton
|
|
Hervé Boutemy
|
|
------
|
|
2011-10-23
|
|
------
|
|
|
|
~~ Licensed to the Apache Software Foundation (ASF) under one
|
|
~~ or more contributor license agreements. See the NOTICE file
|
|
~~ distributed with this work for additional information
|
|
~~ regarding copyright ownership. The ASF licenses this file
|
|
~~ to you under the Apache License, Version 2.0 (the
|
|
~~ "License"); you may not use this file except in compliance
|
|
~~ with the License. You may obtain a copy of the License at
|
|
~~
|
|
~~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~~
|
|
~~ Unless required by applicable law or agreed to in writing,
|
|
~~ software distributed under the License is distributed on an
|
|
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
~~ KIND, either express or implied. See the License for the
|
|
~~ specific language governing permissions and limitations
|
|
~~ under the License.
|
|
|
|
~~ NOTE: For help with the syntax of this file, see:
|
|
~~ http://maven.apache.org/doxia/references/apt-format.html
|
|
|
|
Maven Plugin Tool for Java Annotated with Mojo Javadoc Tags
|
|
|
|
The Maven Plugin Tool for Java is the Java impl of {{{../maven-plugin-tools-api/index.html}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>
|
|
* @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 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
|
|
|
|
* {{{/developers/mojo-api-specification.html#The_Descriptor_and_Annotations}Mojo API Specification}}
|
|
|
|
* {{{/ref/current/maven-plugin-api/plugin.html}<<<META-INF/maven/plugin.xml>>> plugin descriptor}}
|
|
|
|
* {{{/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html}PluginParameterExpressionEvaluator}},
|
|
used to evaluate plugin parameters values during Mojo configuration,
|