------ Introduction ------ Hervé Boutemy ------ 2012-05-12 ------ ~~ 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 Annotations The Maven Plugin Tool for Annotations is the impl of {{{../maven-plugin-tools-api/index.html}maven-plugin-tools-api}} to extract descriptors from plugins written in Java with {{{../maven-plugin-annotations/index.html}Maven Plugin Tools Java 5 Annotations}}. * Supported 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.InstanciationStrategy; 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 = "" ) is the minimal required annotation. * @since * @deprecated */ @Mojo( name = "", aggregator = , configurator = "", executionStrategy = "", inheritByDefault = , instantiationStrategy = InstanciationStrategy., defaultPhase = "", requiresDependencyResolution = ResolutionScope., requiresDependencyCollection = ResolutionScope., // (since Maven 3.0) requiresDirectInvocation = , requiresOnline = , requiresProject = , requiresReports = , // (unsupported since Maven 3.0) threadSafe = ) // (since Maven 3.0) @Execute( goal = "", phase = LifecyclePhase. lifecycle = "" ) public class MyMojo extends AbstractMojo { /** * @since * @deprecated */ @Parameter( alias = "myAlias", property = "a.property", defaultValue = "an expression with ${variables} eventually", readonly = required = ) private String parameter; @Component( role = MyComponentExtension.class, hint = "..." ) private MyComponent component; @Component private MavenSession session; @Component private MavenProject project; @Component private MojoExecution mojo; @Component private PluginDescriptor plugin; @Component private Settings settings; public void execute() { ... } } +---------+ * See also * {{{../maven-plugin-annotations/index.html}Maven Plugin Tools Java 5 Annotations}} * {{{/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}}