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

我使用的是Netbeans 7.1.1和Glassfish 3.1.2服务器。 作为JPA提供商,我决定使用随Netbeans一起提供的eclipse-link 2.3.0。 由于我想使用延迟抓取,我的项目由大约45个JPA实体类组成,它们之间有很多关系,所以我决定使用静态编织 。 此外,@ Entity类位于单独的Class Lib项目中,而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的片段:

                

pathelement路径中的所有jar文件也作为库包含在Netbeans IDE中。 点击“清理和构建”时,我现在收到以下错误:

 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,然后在那里编辑类路径。

我也使用Netbeans 8.0.1在TomEE 1.7.0中使用Eclipselink 2.4.2开发java ee项目,我只是将以下内容放入我的build.xml中 (我从不修改build-impl.xml,因为Netbeans可以覆盖它时在配置中修改,构建):

          

您可以看到在所有Netbeans Java EE Ant项目中仅使用了常用变量 。 我没有直接定义任何jar,只是已经在项目中定义的变量。

在我的实现中,我正在使用展开的目录结构,我的persistence.xml在

 ${build.classes.dir}/META-INF/persistence.xml 

最重要的是正确定义类路径

现在,如果我跑

 ant weaving 

静态编织将完成。 构建需要大约15秒钟,所以我只在测试服务器和生产服务器上构建这种方式,而不是在我的开发环境中。

如果我只是简单运行(或使用Netbeans构建菜单)

 ant dist 

如果没有编织,建筑物将正​​常运行。

当然,我的persistence.xml中有一个编织定义,如下所示:

  org.eclipse.persistence.jpa.PersistenceProvider mydata false       

我还必须包括org.eclipse.persistence.jpa.jpql_1.0.1.jarorg.eclipse.persistence.jpa.modelgen.processor-2.3.2.jar ,以便使编织生效 。 希望这可以帮助。