eclipse - 如何为 Eclipse 创建自定义注释处理器
问题描述
我正在尝试创建一个在编译时生成代码的自定义注释处理器(就像 hibernate-jpamodelgen 所做的那样)。我在网上查看过,我发现自定义注释处理器可以与 maven 一起使用,但在添加到“注释处理”>“工厂路径”选项时什么也不做。我怎样才能以这种方式创建兼容的处理器?我还没有找到有效的教程。
例如,我的想法是注释一个实体以自动生成一个基本 DTO、一个基本映射器等,这些可以扩展以在最终代码中使用。
谢谢你们
解决方案
好的,已经发现问题了。我发现的教程没有指定,为了让编译器能够应用注释处理器,必须有一个 META-INF/services/javax.annotation.processing.Processor 包含限定类名的文件处理器(或处理器)。
我创建了指向我的处理器类的文件,生成了 jar 并将其添加到 Annotation Processing > Factory Path 并且一切正常。
只是要注意保持处理器的顺序正确(例如,休眠模型生成器声明了类,因此在它之后不会再生成),并且每次要替换库时都更改 jar 文件名(看起来eclipse 保留一个缓存)。这两件事让我很头疼。
谢谢大家
推荐阅读
- c# - 安装 Microsoft.Azure.SignalR.AspNet 会在部署到服务器时导致方法未实现运行时错误,但在 Visual Studio 2017 上运行良好
- reactjs - Redux 改变多种状态
- java - ListView 适配器异步操作
- python-3.x - 如何在 NEAT(增强拓扑的神经进化)中设置层数?
- ionic4 - Ionic 4 构建后未在平台中创建“ios”文件夹
- fortran - 在 Fortran 中编写混合的 ascii 和二进制数据
- events - 如何在 Modelica 中使用布尔开关来防止库存低于零?
- hanami - 如何使用 Hanami::Repository 在更新/删除命令中使用条件?
- android - 如何在不登录的情况下保存用户值,然后在其他活动的当前用户值中添加数据字段?
- tfs - Mac 上的 tee-clc - 抛出 IllegalArgumentException: update.isFullyPopulated(setFileTimeToCheckin)