我正在使用第 3 方注释处理器从项目中的注释类生成元数据代码(.java 文件)。我已经通过 Eclipse(属性 -> Java 编译器 -> 注释处理)成功配置了处理器,并且代码生成工作正常(代码是自动创建和生成的)。此外,Eclipse 成功地自动完成了生成的类及其字段,没有任何错误。假设我有一个类“some.package.Foo”并且生成的元数据类是“some.package.Foo_”。在自动完成的帮助下,我可以在 Eclipse 编辑器中得到以下代码,没有任何错误:
import some.package.Foo_;
...
public class Test {
void test() {
Foo_.someField = null; // try to access a field from the generated class Foo_
}
}
但是,一旦我实际构建项目(或仅保存文件,因为自动构建已启用),我就会收到错误消息,提示“some.package.Foo_”无法解决。似乎 Eclipse 正在同时生成和编译 some.package.Foo_,或者更有可能。
我找到了两个临时解决方案(实际上首先阻碍了注释处理器的使用):
- 在生成的类的每个构建之前,右键单击每个生成的文件转到属性并取消选中“派生”勾选。之后,我对项目进行了清理,并且导入很好 - 没有更多的错误。但是,如果我再进行一次清理,错误会再次出现,因为文件的生成会导致再次检查“派生”刻度(自动)。所以这真的很烦人而且很耗时。
- 我还取消了所有这些文件中的“派生”标记,这次我取消了源文件夹和包含这些文件的包中的“派生”标记。然后我禁用注释处理器,然后进行清理。没有更多的导入错误,即使我进行了另一次清理,但使用注释处理器没有任何好处,因为如果我要更改会更新模型的东西,我需要重新打开注释处理器,然后重复在生成这些文件的新版本后,这个繁琐的过程将其关闭。
这是 Eclipse 中的错误吗?如果是,是否有比我上面提到的两个更好的解决方法或快速修复?如果没有,我应该怎么解决这个问题?
我还尝试重新排列构建路径上库的顺序,但没有帮助。