java - ant:编译尽可能多的类以防出现编译错误

标签 java ant compilation build-automation

如果出现编译错误,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/

相关文章:

java - ANT:加载资源任务调用两次

java - 在 ant build 中加速 junit 测试

objective-c - iOS - 从服务器执行预编译的应用程序

c# - 如何防止类编译?

java - 如何在 SolrJ 中使用 SpellingResult 类

java - 如何验证 REST 服务中的通用 bean?

java - 获取文本文件中的每 n 行哪个更有效?使用 Java 的 BufferedReader 进行迭代,或者拆分成子文件然后获取每个子文件的顶行?

java - Maven:如何通过 SHA 识别 jar 文件

scala - 我可以对我的 scala 代码做些什么,以便它编译得更快?

java - 从 JSON 中获取数据不会以列表形式返回数据。进度条一直在跑