带有 Netbeans 模块的自定义注释处理器



我正在使用一个(我相信是非Maven)Netbeans模块,该模块被用作基于Netbeans平台构建的程序的插件。

我想做的是使用自定义注释来添加一种有关如何使用 GUI 元素的文档(我正在处理的插件),当用户转到帮助菜单并选择"如何使用"时。

我的想法是创建一个自定义注释,用户在其中提供类的名称和帮助信息。 然后,注释处理器遍历注释,并输出一个类,其中注释信息存储在类字段中。 然后,可以从此类扩展,并用于以有用的方式显示信息。

按照此示例 https://netbeans.org/kb/docs/java/annotations-custom.html

我使用的是Java 7,但是模块和注释处理器Jar都被编译为Java 6。 我的 Netbeans 版本是 7.3.1,但我相信该模块是为 Netbeans 平台 7.0.1 开发的。

我将注释和注释处理器编译到一个 Jar 中,如果我将其与常规 Java 项目一起使用,它会按预期工作。

但是,在使用 Netbeans 模块项目进行编译期间,我无法让处理器运行。

我尝试将 Annotation Processor 类添加到 netbeans 模块中的 META-INF.services(javax.annotation.processing.Processor 文件)中。

我尝试将注释处理器类添加到注释处理器项目中的 META-INF.services, javax.annotation.processing.Processor 文件中。(这使它适用于我的测试项目)

我尝试将 -processor 编译器标志添加到 netbeans 模块项目中以使用特定的注释处理器。

删除我的类和预期的自动生成类之间的扩展关系后,注释处理器的输出,编译了代码。 但那时我注意到注释处理器实际上正在运行。

我重新添加了扩展关系,并再次清理和编译,它编译失败,但注释处理器运行,并按预期成功生成输出文件。 我点击了构建,没有清洁,它最后一次构建,并按预期工作。

我不知道是什么原因造成的,至少对于 Netbeans 模块项目来说,构建顺序似乎与常规 Java 项目不同。 或者,也许有几个中间构建步骤并不总是被清理干净。

最新更新