Let's run though a short example to try and help. To generate sources you must first have a plugin that participates in the generate-sources phase like the Antlr plugin:
/**
* Generates files based on grammar files with Antlr tool.
*
* @goal generate
* @phase generate-sources
* @requiresDependencyResolution compile
* @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
* @version $Id$
*/
public class AntlrPlugin
extends AbstractAntlrMojo
{
/**
* @see org.apache.maven.plugin.Mojo#execute()
*/
public void execute()
throws MojoExecutionException
{
executeAntlr();
}
The first two lines say "I want to be fit into the generate-sources phase and my 'handle' is generate".
So this is all fine and dandy, we have a plugin that wants to generate some sources from a Antlr grammar but how do we use it. You need to specify that you want to use it in your POM:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antlr-plugin</artifactId>
<version>2.0-beta-1</version>
<configuration>
<grammars>java.g</grammars>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
If you then type "mvn compile" Maven will walk through the lifecycle and will eventually hit the generate-sources phase and see you have a plugin configured that wants to participate in that phase and the Antlr plugin is executed with your given configuration.