2010-06-14 83 views
2

在我的Eclipse项目中,我使用的是第三方批注处理器Hibernate Metamodel Generator。注释处理器按预期工作,并生成规范指定的.java文件。这些文件生成到Eclipse项目的“gen”文件夹下的目录中。在项目属性中,由于存在两个源文件夹 - “src”和“gen。”,因此正确地反映了这一点。然而,当项目由于某种原因而被构建时,所有[gen]下的源代码都不会被编译(检查“bin”目录,我只能看到来自“src”目录的.class文件)。有谁知道为什么会发生这种情况?为什么APT生成的类没有被Eclipse编译?

回答

3

我想了一下,以为我会回来解释发生了什么。当编译器运行时,它会编译现有的源代码(我编写的代码),然后从现有源文件生成源文件,但不编译这些生成的类。我最终把它变成了一个Ant项目(按照设置instructions)。所以,基本上我有两个任务:首先生成新的源文件(运行javac,-proc:only选项会导致注释处理发生而不编译源),第二个实际编译所有源(生成的和现有的)。

+0

我有与Eclipse 3.5相同的问题,升级到3.6修复了它。 – junkdog 2011-01-31 01:49:15

1

您必须在Eclipse中刷新“gen”文件夹(例如,从Package Explorer),以便Eclipse能够查看新生成的文件并编译它们。你在做这个吗?

+0

是的,我试过的第一件事。怪异的东西是日食说,当我尝试使用它们时,它不识别这些文件(红色波浪线和问题视图下的消息),但是当我摆脱使用它们的代码并尝试使用自动完成它时将生成的类显示为选项。我也尝试清理并重建项目。我觉得这些java文件是在错误的时间生成的,因为首先src下的所有东西都被编译成bin,然后.java文件在gen下生成。不知道我是否可以非常容易地验证 – Andrey 2010-06-15 14:16:53

相关问题