我正在尝试创建一个在编译时生成代码的自定义注释处理器(就像 hibernate-jpamodelgen 所做的那样)。我在网上查看过,我发现自定义注释处理器可以与 maven 一起使用,但在添加到“注释处理”>“工厂路径”选项时什么也不做。我怎样才能以这种方式创建兼容的处理器?我还没有找到有效的教程。
例如,我的想法是注释一个实体以自动生成一个基本 DTO、一个基本映射器等,这些可以扩展以在最终代码中使用。
谢谢你们
我正在尝试创建一个在编译时生成代码的自定义注释处理器(就像 hibernate-jpamodelgen 所做的那样)。我在网上查看过,我发现自定义注释处理器可以与 maven 一起使用,但在添加到“注释处理”>“工厂路径”选项时什么也不做。我怎样才能以这种方式创建兼容的处理器?我还没有找到有效的教程。
例如,我的想法是注释一个实体以自动生成一个基本 DTO、一个基本映射器等,这些可以扩展以在最终代码中使用。
谢谢你们
好的,已经发现问题了。我发现的教程没有指定,为了让编译器能够应用注释处理器,必须有一个 META-INF/services/javax.annotation.processing.Processor 包含限定类名的文件处理器(或处理器)。
我创建了指向我的处理器类的文件,生成了 jar 并将其添加到 Annotation Processing > Factory Path 并且一切正常。
只是要注意保持处理器的顺序正确(例如,休眠模型生成器声明了类,因此在它之后不会再生成),并且每次要替换库时都更改 jar 文件名(看起来eclipse 保留一个缓存)。这两件事让我很头疼。
谢谢大家