我正在使用 Ant 调用 Eclipse PDE Build 来对 RCP 应用程序进行无头构建。据我了解,PDE Build 本身调用 Ant 来构建应用程序,因此我们本质上是在 Ant 中运行 Ant 构建。
问题是这样的:当 PDE 构建由于 Java 编译器的编译错误而失败时,该错误不会传播回我启动 PDE 构建的父 Ant 脚本。这意味着即使没有成功,也可以说构建成功。但是,当存在其他错误时,它确实会失败,例如缺少插件以致无法解决依赖关系。
这是我为构建 Eclipse 功能而调用的任务:
<target name="feature_build">
<exec executable="java" failonerror="true">
<arg value="-Xmx512m" />
<arg value="-jar" />
<arg value="${equinox.launcher}" />
<arg value="-application" />
<arg value="org.eclipse.ant.core.antRunner" />
<arg value="-buildfile" />
<arg value="${pde.build.dir}/scripts/build.xml" />
</exec>
</target>
我是否在做明显错误的事情,或者这可能是 PDE Build 中的错误?我正在为 Eclipse E4 M5 构建,根据构建输出,PDE Build 的版本是 3.9.0-v20131003-1506。