【发布时间】:2016-07-17 19:52:42
【问题描述】:
我了解 Eclipse 使用它自己的 Java (ECJ) 编译器,它能够执行增量编译。从我发现的大多数读数来看,这种编译通常是由保存操作触发的,但这似乎与您在输入单个单元/代码后几乎立即收到编译错误的错误反馈这一事实不符.我还没有找到任何文档或文献说明触发的粒度(即每个单词、字母、行)?是否正在进行某种额外的背景代码分析?尽管除了语法中的错误检测之外,我看不出它如何能够检测到只能通过编译过程才能发现的语义错误。
【问题讨论】:
-
你看过优秀的开源应用架构吗?具体aosabook.org/en/eclipse.html
-
你没有提到NetBeans!
-
@JasonSperske 我只是看了看,并没有真正看到该页面如何回答我提出的问题。如果有特定的部分,请指出给我。
-
我认为 IntelliJ 根本不进行增量编译。
-
@user3601148 我将“增量编译”解释为将语法树暴露给 IDE 的 Eclipse 风格。据我了解,IDEA 仍然通过通常的外部编译器路由单文件编译;您链接的更新只是消除了一直使用 Ctrl-B 的需要。正如 OP 所指出的,Eclipse 甚至能够检测到语法错误,并在保存之前的键入期间推荐修复。
标签: java eclipse ecj incremental-compiler