作为一个实验,我们想在 Java 6 的运行时版本而不是 JDK 上使用 Eclipse java 编译器(从 eclipse.org 下载的 ecj-3.5.jar)来构建我们的产品,据我所知,这是一个添加的问题这个 jar 到 ant 类路径,并将 build.compiler 属性设置为指向适配器。
通过包括
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
在我的 build.xml 并使用 JRE 调用 ant 时,我得到了无法找到适配器的预期错误,并且通过将 ecj-3.5.jar 添加到 Eclipse 面板中的类路径中,我可以按预期编译我的代码。我相信现代蚂蚁的命令行中的“-lib foo.jar”可以使用相同的功能。
现在,我想从 build.xml 中指定我希望类路径上的 ecj-3.5.jar 满足与上述相同的要求。我们已经可以用 ant 任务做到这一点,所以我相信这是可能的。
所以问题是:如何添加到 javac 使用的类路径以仅从build.xml 中定位编译器?
看来即将推出的 ant4eclipse 1.0 包括 Eclipse 编译器(这是我想要使用的),所以通过升级到那个(从 0.5)应该可以解决我们遇到的问题。
2010-09-24:Ant4Eclipse 仍处于 M4 阶段,但没有说明何时发布。
2011-12-01:我们现在已经从 ant 迁移到 maven。build.xml 脚本遇到了复杂性,需要一种新的方法。任何需要选择做什么的人——除了琐碎的项目外,不要走 ant4eclipse 路径。
2012-11-30:一年过去了,maven 的体验还是不错的。思维方式有很多怪癖和变化,但大多数在上下文中是有意义的。Maven 可以轻松地指定单个项目的编译器级别。我们正在考虑使用 ecj 代替 javac(出于多种原因),但对于大多数用途来说,javac 效果很好。