To use this plugin you have to include the following repository declaration in your POM
<pluginRepositories>
        <!-- THIS REPOSITORY IS NOT LONGER VALID 
        <pluginRepository>
                <id>maven2-repository.dev.java.net</id>
                <name>Java.net Repository for Maven</name>
                <url>http://download.java.net/maven/2/</url>
                <layout>default</layout>
    </pluginRepository>
    -->
        <!-- IF YOU WANT STAY TUNED ON UPDATE REMOVE COMMENT -->
          
    <pluginRepository>
                <id>sonatype-repo</id>
                <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                <releases>
                        <enabled>false</enabled>
                </releases>
                <snapshots>
                        <enabled>true</enabled>
                </snapshots>
    </pluginRepository>
    
</pluginRepositories>
Example1
Sources will be generated into target/generated-sources/apt/main/java Test sources into target/generated-sources/apt/test/java Both directories will be added to the compilation path
<build>
  <plugins>
    <!-- Run annotation processors on src/main/java sources -->
    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <executions>
        <execution>
          <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase>
        </execution>
      </executions>
    </plugin>
    <!-- Run annotation processors on src/test/java sources -->
    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <executions>
        <execution>
          <id>process-test</id>
          <goals>
            <goal>process-test</goal>
          </goals>
          <phase>generate-test-sources</phase>
        </execution>
      </executions>
    </plugin>
    <!-- Disable annotation processors during normal compilation -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <compilerArgument>-proc:none</compilerArgument>
      </configuration>
    </plugin>
  </plugins>
</build>
Example2
Generating sources into src/main/generated directory. This strategy is good if you wish to check in your generated sources into your SCM. Run mvn generate-sources to generate the sources.
<build>
  <plugins>
    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <executions>
        <execution>
          <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase>
          <configuration>
            <!-- source output directory -->
            <outputDirectory>src/main/generated</outputDirectory>
          </configuration> 
        </execution>
      </executions>
    </plugin>
  </plugin>
</build>
Example3
Running specific annotation processors only.
<build>
  <plugins>
    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <executions>
        <execution>
          <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase>
          <configuration>
            <processors>
               <!-- list of processors to use -->
               <processor>org.bsc.apt.BeanInfoAnnotationProcessor</processor>
            </processors>
            
          </configuration> 
        </execution>
      </executions>
    </plugin>
  </plugin>
</build>
Example4
Passing options to processors
<build>
  <plugins>
    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <executions>
        <execution>
          <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase>
          <configuration>
           <!-- STANDARD WAY -->
            <compilerArguments>-Amyoption=TRUE</outputDirectory> 
            
           <!-- NEW FEATURE FROM VERSION 2.0.4-->
           <options>
                <myoption>TRUE</myoption>
           </options>
          
          </configuration> 
        </execution>
      </executions>
    </plugin>
  </plugin>
</build>
Example5
Set System Properties
<build>
  <plugins>
    <plugin>
      <groupId>org.bsc.maven</groupId>
      <artifactId>maven-processor-plugin</artifactId>
      <executions>
        <execution>
          <id>process</id>
          <goals>
            <goal>process</goal>
          </goals>
          <phase>generate-sources</phase>
          <configuration>
          
           <systemProperties>
            <log4j.ignoreTCL>true</log4j.ignoreTCL>
           </systemProperties>
          
          </configuration> 
        </execution>
      </executions>
    </plugin>
  </plugin>
</build>