如果出现编译错误,ant javac
任务将不会编译所有可以编译的类。 javac
任务(或编译器本身)似乎在遇到第一个错误时立即停止。
failonerror
属性对此行为没有任何影响。
我没有设置 compile
属性(因此,使用了 Oracle JDK 的编译器)。
是否可以编译出尽可能多的类,以防出现编译错误?
(最好不依赖任何特定的编译器)
一个用例是在开发过程中:
想象一下,您正在实现一些新功能,但尚未完成并且编译错误仍然存在。
与此同时,您需要修复一些其他错误并确保没有任何问题,您需要执行标准测试套件,这些测试套件由 IDE 项目工作区中的 ant 任务调用。 ant 任务尝试编译所有类/测试类,但由于您正在开发的类中的编译错误而失败。
为了能够执行尽可能多的测试用例,告诉 ant/javac 不要因编译错误而失败会非常有帮助。
最佳答案
这与 ant
无关,它是 javac
会在出错时停止并且永远不会给你任何类文件。
failonerror
属性只是说明如果编译发回错误,构建应该继续还是停止。
从 1.3 开始:http://docs.oracle.com/javase/1.3/docs/tooldocs/tools-changes.html
“当新的 1.3 编译器在编译期间检测到源文件中的错误时,它会继续解析剩余的源文件并尝试识别它们可能包含的任何进一步错误。代码生成在剩余的代码中被完全抑制编译,然而,并且不会生成任何类文件,即使对于不包含错误的编译单元也是如此。”
您可能想使用其他一些编译器,例如 jikes。但实际上,谁会希望运行部分编译的类?
关于java - ant:编译尽可能多的类以防出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583988/