我使用Netbeans 7.1编写Maven构建的JSF 2.0 Web应用程序。服务器是GlassFish 3.1,EclipseLink是JPA 2.0提供程序。
当我对项目进行“清理和构建”时,JPA元模型的所有生成源都会消失,不会再回来。所以Netbeans看到了大量未定义的符号。到处都是红点。
奇怪的是,如果我运行项目,那么元模型会以某种方式生成,然后最终返回到Maven项目使用的generated-sources目录。 Web应用程序运行。但是没有运行应用程序就无法生成元模型。有时它需要几次通过!
通过试验我发现如果我将以下内容作为依赖项,那么问题就会消失。 clean-and-build仍然会在输出中生成错误,但就IDE而言,模型就会生成。
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.3.0</version>
</dependency>
有人可以解释发生了什么,也许我应该做什么?
答案 0 :(得分:3)
我使用以下依赖项:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>2.5.2</version>
<scope>provided</scope>
</dependency>
在“清理和构建”之后,您将看到元模型确实在构建时构建,并且类实际上包含在target / generated-sources / annotations文件夹中。然后将它们放入jar文件中。所以说你可以将它们视为“提供”,以便在构建期间使用它,但不包括在整个分布式包中。
答案 1 :(得分:0)
如果我理解正确,处理器在应用程序启动时(运行时)生成元模型。因此,您必须将其包含在您的Web应用程序中。
以前不存在元模型类。