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

Posted

技术标签:

【中文标题】什么是默认注释处理器发现过程?【英文标题】:What is the default annotation processors discovery process? 【发布时间】:2012-07-25 23:54:08 【问题描述】:

documentation of Maven Compiler plugin mentions the following:

注解处理器:

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

这里的默认注释处理器发现过程是什么?除了这个配置标签,还有其他方法可以设置注解处理器吗?

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

具体来说,它只是一个ServiceLoader for javax.annotation.processing.Processor

以上是关于什么是默认注释处理器发现过程?的主要内容,如果未能解决你的问题,请参考以下文章

在 Hibernate 中使用注释定义默认列值

dolphinscheduler调度中执行python报错的处理过程

发出注释处理器的实时错误和警告

使用 kapt 和 gradle 时无法调试注释处理器

MYSQL 怎么发现处理没有commit 留下的“大”麻烦?

“注释处理器支持的源版本'RELEASE_5'......”是啥意思?