Repository
To use this plugin you have to include the following repository declaration in your POM
<pluginRepositories> <!-- 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>
Usage
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>
Example6
use toolchain
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> <executions> <execution> <goals> <goal>toolchain</goal> </goals> </execution> </executions> <configuration> <toolchains> <jdk> <version>1.6</version> <vendor>sun</vendor> </jdk> </toolchains> </configuration> </plugin> <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> <processor>org.bsc.apt.BeanInfoAnnotationProcessor</processor> </processors> </configuration> </execution> </executions> </plugin> </plugin> </build>