注释处理器直到最近更改了类



在我们的项目中,我们要为用户界面对话框创建唯一的标识符。为了确保开发人员不会为对话框创建重复的标识符,我创建了一个注释处理器,该处理器检查"对话框注释"(它包含唯一标识符(,并通过Eclipse Complas中的Messager-class创建错误被检测到。

我希望处理器处理对话框注释注释的所有类,但是他只有在Eclipse中调用完整的构建时才这样做。但是,如果我更改一个对话框类并保存它,则处理器仅处理此单个对话框(我相信这称为增量构建(,从而使我无法检查其他对话框是否已经分配了相同的标识符。我尝试在.factorypath文件中设置Run this container's processors in batch mode,但似乎没有效果。Factory Path Preferences的Eclipse文档说明了此选项:

此选项仅适用于使用Java 5 Mirror API的处理器。它不会使用Java 6注释处理API影响处理器。

我确实使用Java 6注释处理API。因此,这似乎也不是一种选择。

有什么方法可以使其处理所有带注释的类 - 甚至没有变化的类?我也很高兴听到其他方法来解决最初的问题。

AnnotationProcessor将仅处理编译类,因此难怪您会遇到麻烦。

我假设您的处理器会在运行时收集所有ID。它将更好地将收集的ID存储到高速缓存(例如文件(中,并在每次编译中检查扫描所有带注释的类(准确的所有类(的情况。这样,注册id只需要单个类的汇编。将来的每个修改都会与已编译的,未修改的类对您进行重新检查。

最新更新