13

documentation of Maven Compiler plugin mentions the following什么是默认注释处理器发现过程?

annotationProcessors:注释处理器的

名称运行。仅适用于JDK 1.6+如果不是 集合,则默认注释处理器发现过程适用。

什么是默认注释处理器发现过程在这里?有没有其他方法来设置注释处理器比这个配置标签?

我发现Getting Started with the Annotation Processing Tool (apt)文档中提到一个默认的发现过程,但它与工厂类不是处理器,不幸的是它使用从JDK的tools.jarcom.sun包工程。这是默认的注释处理器发现过程吗?

回答

15

使注释处理器可供编译器使用的默认方法是将其注册到文件META-INF/services/javax.annotation.processing.Processor中。该文件可以包含多个处理器:每个完全限定的类名称在其自己的行上,最后一个换行符。如果没有指定,编译器将默认使用以这种方式找到的处理器。

+3

具体来说,它只是一个用于'javax.annotation.processing.Processor'的[ServiceLoader](http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) – gk5885 2016-06-22 05:33:49