1. 新建两个普通的JAVA工程
- Process 编译时注解工程
- TestProcess 测试工程
2. 自定义注解解析器
- 2.1 代码
@SupportedAnnotationTypes({"com.imzhushang.annotation.Subscribe"})
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public class AnnotationProcess extends AbstractProcessor {
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {}
}
2.2 注册服务
在 javax.annotation.processing.Processor 文件中写上 AnnotationProcess 的全路径
2.3 Maven 打包
在pom.xml中添加如下代码
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<!-- Disable annotation processing for ourselves.-->
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!--放置生成的文件覆盖我们自定义的文件-->
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
</build>
3. IDEA 配置 Annotation Process 支持
IDEA配置的参考 IDEA配置
Eclipse 配置的参考 配置