GAE documentation for JPA 2.0表示ant文件的目标enhance_war
应为:
<target name="datanucleusenhance" depends="compile"
description="Performs enhancement on compiled data classes.">
<enhance_war war="war">
<args>
<arg value="-enhancerVersion"/>
<arg value="v2"/>
</args>
</enhance_war>
但是,我们可以在ant-macros.xml
上找到这个:
<attribute name="api" description="persistence api, JDO or JPA" default="JDO"/>
这是正确的,即我们不应该指定JPA用法吗?
答案 0 :(得分:2)
有趣的是,看看DataNucleus documentation,在Ant部分,我读到了:
api Optional. Defines the API to be used when enhancing JDO, JPA
并且JDO是默认值,我会在需要时将其指定为JPA,即使它似乎仍在工作。
在我看来,宏并没有增加很多价值,所以我决定直接在我的配置中集成增强任务,所以我只能选择以Entity结尾的类,而不是让datanucleus检查每个班级。
<target name="-datanucleusenhance" depends="compile"
description="Performs enhancement on compiled data classes">
<enhance failonerror="true" api="JPA">
<arg value="-enhancerVersion"/>
<arg value="v2"/>
<classpath>
<pathelement path="${main.classes.dir}"/>
<pathelement path="${sdk.dir}/lib/appengine-tools-api.jar"/>
</classpath>
<fileset dir="${war.dir}/WEB-INF/classes" includes="**/*Entity.class"/>
</enhance>
</target>
让我知道你在此期间发现了什么!