【问题标题】:Do I need to include EclipseLink modelgen package in my Maven dependencies?我是否需要在我的 Maven 依赖项中包含 EclipseLink modelgen 包?
【发布时间】:2012-04-04 07:37:22
【问题描述】:

我正在使用 Netbeans 7.1 编写一个 Maven 构建的 JSF 2.0 Web 应用程序。服务器是 GlassFish 3.1,EclipseLink 作为 JPA 2.0 提供者。

当我对项目进行“清理和构建”时,为 JPA 元模型生成的所有源都消失了,不再回来了。因此,Netbeans 看到了成堆的未定义符号。到处都是红点。

奇怪的是,如果我运行项目,元模型会以某种方式生成,并最终找到返回 Maven 项目使用的生成源目录的方式。网络应用程序运行。但是没有运行应用程序就无法生成元模型。有时需要多次通过!

通过试验,我发现如果我将以下内容作为依赖项包含在内,问题就会部分消失。 clean-and-build 仍然会在输出中产生错误,但就 IDE 而言,模型是生成的。

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
        <version>2.3.0</version>
    </dependency>

有人可以解释发生了什么,也许我应该做什么?

【问题讨论】:

    标签: maven eclipselink netbeans-7


    【解决方案1】:

    我正在使用以下依赖项:

    <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 文件中。话虽如此,您可以将它们限定为“已提供”,以便在构建期间使用它,但不包含在整个分布式包中。

    【讨论】:

      【解决方案2】:

      如果我理解正确,处理器会在应用程序启动时(在运行时)生成元模型。因此,您必须将其包含到您的 Web 应用程序中。

      元模型类以前不存在。

      【讨论】:

        猜你喜欢
        • 2012-05-12
        • 1970-01-01
        • 2021-04-14
        • 2020-05-01
        • 2015-10-28
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        相关资源
        最近更新 更多