java - 如何在 Netbeans 中使用 Eclipse-Link JPA 应用静态编织 Ant 任务?

标签 java jpa static entity eclipselink

我正在使用 Netbeans 7.1.1 和 Glassfish 3.1.2 服务器。作为 JPA 提供者,我决定使用 Netbeans 附带的 eclipse-link 2.3.0。因为我想使用惰性抓取并且我的项目包含大约 45 个 JPA 实体类,它们之间确实有很多关系,所以我决定使用静态编织。此外,@Entity 类位于单独的类库项目中,而 persistence.xml 位于 EJB 项目中。

我已经按照此处的说明进行操作:http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Static_Weaving

我将 ant-task 放入 build-impl.xml 文件中(如下所示)。使用 Netbeans 时是否正确?这是来自 build-impl.xml 的片段:

<target name="-post-jar" description="New task definition for EclipseLink static weaving">
    <taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"/>
</target>
<target name="weaving" description="perform weaving" depends="-post-jar">
    <weave  source="${dist.jar}\MyProject.jar"
            target="${dist.jar}\MyProject_Weaved.jar"
            persistenceinfo="${dist.jar}..\..\MyProjectEE\MyProject-ejb\build\classes\META-INF\persistence.xml"
            loglevel="FINER">
        <classpath>
            <pathelement path="${dist.jar}\lib\eclipselink-2.3.0.jar"/>
            <pathelement path="${dist.jar}\lib\javaee-api-6.0.jar"/>
            <pathelement path="${dist.jar}\lib\jasypt-1.9.0.jar"/>
            <pathelement path="${dist.jar}\lib\javax.persistence-2.0.jar"/>
            <pathelement path="${dist.jar}\lib\org.eclipse.persistence.jpa.jpql_1.0.0.jar"/>
            <pathelement path="${dist.jar}\lib\joda-time-2.1.jar"/>
            <pathelement path="${dist.jar}\lib\jms.jar"/>
        </classpath>
    </weave>
</target>

路径元素路径中的所有 jar 文件也作为库包含在 Netbeans IDE 中。当点击“Clean & Build”时,我现在收到以下错误:

D:\workspace\MyProject\nbproject\build-impl.xml:703: taskdef class org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask cannot be found
using the classloader AntClassLoader[]

我在这里做错了什么?

最佳答案

您需要将 eclipselink.jar 和 javax.persistence.jar 添加到 Ant 类路径。

在 Netbeans 中,转到 Tools/Options/Miscellaneous/Ant,并在那里编辑类路径。

关于java - 如何在 Netbeans 中使用 Eclipse-Link JPA 应用静态编织 Ant 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431819/

相关文章:

c - 如何在多个模块中处理静态全局变量?

java - Android - 手机锁定时显示来自服务的警报对话框

java - 将双列表转换为分组字符串

java - 解决 Spring MVC 3.2.8 中的占位符

java - 一对多 SQL 关系

Java:调用静态方法但没有任何反应?

java - 使用哪一个(executeUpate 或 list)来插入、更新和选择?

java - 组合 JPA、EJB 和 JSF 托管 bean 的首选设计模式是什么?

java - 无法定位静态元模型字段

django - 你如何要求在 Django 中登录媒体文件