什么是默认注释处理器发现过程?

pal*_*int 15 java maven-2 annotations annotation-processing maven-compiler-plugin

Maven Compiler插件文档提到了以下内容:

annotationProcessors:

要运行的注释处理器的名称.仅适用于JDK 1.6+如果未设置,则应用默认注释处理器发现过程.

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

我发现注释处理工具入门(apt)文档提到了一个默认的发现过程,但它适用于工厂类而不是处理器,不幸的是它使用了JDK中的tools.jarcom.sun包.这是默认的注释处理器发现过程吗?

Dan*_*iel 18

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

  • 具体来说,它只是一个[ServiceLoader](http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html),用于`javax.annotation.processing.Processor` (4认同)