在Eclipse中禁用构建工作区进程


87

运行构建工作区进程时Eclipse在做什么?我可以禁用它吗,因为它需要很长时间才能完成,并且我不知道是否有必要。谢谢


12
另外,构建工作区到底是什么?
超级猫

15
我很想知道为什么这个过程需要阻止您在Eclipse中执行其他任何操作。
Tony Topper 2014年

Answers:


102

生成工作空间是关于在当前使用的工作空间中已打开的项目之一中检测到的任何演变的增量生成。

您也可以通过菜单“Project / Build automatically ”。

但我建议先检查一下:

  • 如果项目“全部清除” /“构建”导致相同的长时间等待(禁用此选项后)
  • 如果您拥有(这一次自动激活了构建功能)某些验证选项,则可以禁用以查看它们是否对全局编译时间有影响(Preferences / ValidationsPreferences / XML / ...是否已安装WTP)
  • 如果引用相同工作空间的全新eclipse安装(请参阅此eclipse.ini了解更多信息)导致相同的问题(自动激活建筑物)

请注意,错误329657(2011年开放,2014年进行中)与中断(过长)构建有关,而不是取消构建:

构建中断和取消之间有一个重要区别。

  • 取消构建后,通常会通过丢弃增量构建状态并让下一个构建完全重建来处理此问题。在某些项目中,这可能会非常昂贵。
    作为用户,我想我宁愿等待5秒增量构建完成,而不是取消并在之后进行30秒重建。

  • 使用中断的想法是,构建器可以通过保存其中间状态并在下一次调用时恢复运行,来更有效地处理中断。
    实际上,这很难实现,因此最常见的边界是在调用链中的每个构建器之前/之后检查中断的时间。

 


另请参见此
VonC

1
这个答案是不正确的。项目->自动生成始终处于未选中状态,但是它仍然随机决定刷新工作区,从而完全阻止了我在此庞大的代码库中执行无法完成的工作,而这些工作在我必须完成为客户完成的任务时无法减少。
斯宾塞·威廉姆斯

15

您可以切换到手动构建,因此可以控制何时完成。只需确保Project > Build Automatically未选中主菜单中的即可。


谢谢,只是想知道您是否还能告诉我构建工作区的确切含义?
超级猫

3

如果需要,可以通过PDE或JDT代码进行编程:

public static void setWorkspaceAutoBuild(boolean flag) throws CoreException 
{
IWorkspace workspace = ResourcesPlugin.getWorkspace();
final IWorkspaceDescription description = workspace.getDescription();
description.setAutoBuilding(flag);
workspace.setDescription(description);
}

0

对于遇到问题的人,其中没有选择自动构建,但项目仍在构建中。确保您的项目未部署到服务器选项卡中的服务器上,并被告知保持同步。


值得一提的简要如何确定是否“告知呆在同步”实际上是-我看没有提到这在我的服务器选项卡上,例如,也不当我检查服务器上的性能上下文菜单..
拉扎勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.