为什么Eclipse有时会重建整个工作区?

4

我使用Eclipse Luna 4.4.0。有时候,当我启动Eclipse并且没有更改任何内容时,它会重新构建整个工作区,这有点烦人。这不是增量构建,而是完全重建(包括清理所有项目的输出文件夹)。

我为项目使用自动构建(所有Java项目,使用svn和git),但是自动构建不应该导致这种行为。

是什么触发了完整的工作区重建?错误日志中没有任何提示。


这似乎在2020年仍在发生。也许与m2e(Maven集成)有关 - 有时编辑一个pom.xml会触发工作区中所有项目的重建... - Petr Bodnár
1个回答

1

一般来说,构建器会按照以下方式触发(来自 Eclipse wiki)。

JDT使用平台提供的自动构建工具。如果资源发生更改,平台会检查项目描述文件(在您的项目中查看.project)。当文件包含对Java构建器的引用时,构建器将被通知更改,然后将编译Java源文件及其依赖项。

我不知道启动时究竟是什么触发了构建(我一直有这样的感觉,即Eclipse在启动时某种程度上“有意义”)。如果您正在Linux系统上运行,是否可能在启动过程中触发了一些资源的touch操作?

维基上还说明了如何关闭自动构建(我想您已经完全了解了):

可以通过窗口>首选项>常规>工作区>自动构建来关闭自动构建。

在Eclipse的bugzilla上也有相关的错误,例如https://bugs.eclipse.org/bugs/show_bug.cgi?id=73969, https://bugs.eclipse.org/bugs/show_bug.cgi?id=172444


有道理的是,Eclipse会构建自上次构建以来被触及的任何内容。但我明确没有触及任何东西,但仍然偶尔会重新构建每个项目,包括清理。 - wero
感谢提供Eclipse Bugzilla的链接:该线程来自2005年,但表明Eclipse的内部工作/bug可能会触发不必要的完全重建。 - wero
@wero:尽管这篇文章有些年头了,但我自己觉得这个链接很有趣。 - s.d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接