我已经在我们的AppEngine项目中实现了数据存储回调,并在Eclipse中进行了设置,如链接所示。
现在我无法让它在 Ant 中编译。以下是我现在对javac目标的内容:
<path id="appengine.api.path">
<pathelement location="${appengine.folder}/lib/impl/appengine-api.jar" />
</path>
<target name="javac" depends="clean,libs" description="Compile java source">
<mkdir dir="war/WEB-INF/classes" />
<apt compile="false" preprocessdir=".apt_build_generated" destdir="war/WEB-INF/classes"
srcdir="src"
factorypathref="appengine.api.path"
>
</apt>
<javac srcdir="src" includes="**" encoding="utf-8" destdir="war/WEB-INF/classes" source="1.6" target="1.6" nowarn="true" debug="true" debuglevel="lines,vars,source">
<classpath refid="project.class.path" />
</javac>
<copy todir="war/WEB-INF/classes">
<fileset dir="src" excludes="**/*.java" />
</copy>
</target>
apt 任务运行,但它所做的只是列出一堆没有处理器的注释,包括 PrePut 注释。
我尝试将 factorypathref 设置为 ${appengine.folder}/lib/impl/appengine-api.jar但随后它说找不到 appengine-api.jar 引用(我已经验证了路径是否存在)。我还查看了 jar 文件,看看我是否可以找到它用作工厂的类,但还没有找到它。
终于发现了问题所在。我们在 Ant 构建中使用 Eclipse 编译器还有其他原因。当我们切换回内置的Java编译器时,注释处理器开始正常工作。