http://skyanhf.blog.163.com/blog/static/1375845922010132233079/

用Eclipse Compiler编译Java项目  

2010-02-03 14:23:30|  分类: tech |  标签:ant  automation  eclipse  java   |字号 订阅

 
我们经常使用ant来编译我们的Eclipse项目,但有时ant中javac任务往往只能编译一部分代码。当代码有编译错误时,ant就停止编译,不再继续编译剩下的代码。这种方式给一些单元测试或者脚本类的工程带来了麻烦,因为这类工程中的错误往往只是一个脚本的语法问题,并不影响其他脚本。所以这类工程希望尽可能多的编译全部代码,而不是因为一个编译错误而停止。

但我们在Eclipse里面编译工程时,却没有这样的问题,Eclipse将会把所有的代码都编译一遍,最后显示所有的错误。这是因为这时编译的是Eclipse自己实现的Java编译器。我们可以利用Eclipse自带的编译器,改进我们的ant脚本。

 
实现起来很简单:
1. 在ant脚本中加入一行:
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
如果javac任务中有这么一行,则删之:
compiler="javac1.5"

 
2. 下载ecj.jar,可以从http://download.eclipse.org/eclipse/downloads/下载,选择eclipse的版本号,然后在"JDT Core Batch Compiler"这个类别中就可以下载对应版本的ecj.jar了。

 
3. 运行ant命令,加上如下参数:
ant -f build.xml -lib ecj.jar

 
4. 如果遇到OutOfMemory的错误在编译过程中,则加上如下的环境变量:
set ANT_OPTS=-Xmx1024m