将此代码添加到您的 build.xml 文件:
build.xml
<target name="-post-jar"> <antcall target="weaving"/> </target> <target name="define.task" 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="define.task"> <weave source="C:\<projectpath>\dist\${ant.project.name}.jar" target="C:\<projectpath>\dist\woven-${ant.project.name}.jar" persistenceinfo="D:\<projectpath>\lib\persistence.jar" loglevel="FINE" log="C:\<projectpath>\weaver.log"> <classpath> </classpath> </weave> </target>
在代码中,改变 <projectpath> 与源代码所在的路径。而且 persistenceinfo 指向另一个只包含的jar(persistence.jar) persistence.xml 我使用,因为我在几个项目中共享相同的persistence.xml文件。如果不为persistence.xml文件使用单独的jar,则删除该属性并使用 persistencexml=<path-to-persistence.xml-file>\META-INF\persistence.xml 。
<projectpath>
persistenceinfo
persistence.xml
persistencexml=<path-to-persistence.xml-file>\META-INF\persistence.xml
此外,您还需要添加文件 eclipselink.jar 和 javax.persistence...jar 到Ant类路径。如果您使用的是Netbeans,请转到 Tools | Options | Java | Ant 在那里,您可以将这些文件添加到类路径中。
eclipselink.jar
javax.persistence...jar
Tools | Options | Java | Ant
使用前面的代码,每次编译它都会生成一个带有前缀的新文件 woven- 这是你的新编织jar文件。
woven-
如果需要,可以使用展开的目录结构而不是jar来编写类文件。
如果是maven项目,你可以使用这个maven插件来编织jar
<plugins> ... <plugin> <groupId>de.empulse.eclipselink</groupId> <artifactId>staticweave-maven-plugin</artifactId> <version>1.0.0</version> <executions> <execution> <phase>process-classes</phase> <goals> <goal>weave</goal> </goals> <configuration> <persistenceXMLLocation>META-INF/persistence.xml</persistenceXMLLocation> <logLevel>FINE</logLevel> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.jpa</artifactId> <version>${eclipselink.version}</version> </dependency> </dependencies> </plugin> </plugins>
的 也可以看看 : EclipseLink - 配置静态编织 强>
静态编织编织.class文件,并输出.class文件。它不适用于.java文件。通常你给它一个jar文件,它输出一个新的jar文件。
看到, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Static_Weaving