Отключить процесс создания рабочего пространства в Eclipse

87

Что делает Eclipse, когда выполняется процесс создания рабочей области? Могу ли я отключить его, потому что это занимает много времени, и я не знаю, нужно ли это. Спасибо

Супер Кот
источник
12
И что именно строит рабочее пространство?
Super Cat,
15
Я хотел бы знать, почему этот процесс должен блокировать вас от любых других действий в Eclipse.
Тони Топпер

Ответы:

102

Построение рабочего пространства - это инкрементное построение любой эволюции, обнаруженной в одном из открытых проектов в текущем используемом рабочем пространстве.

Вы также можете отключить его через меню " Project / Build automatically".

Но я бы рекомендовал сначала проверить:

  • если Project Clean all / Build приводит к такому же долгому ожиданию (после отключения этой опции)
  • если у вас есть (на этот раз с автоматически активированной сборкой) некоторые параметры проверки, вы можете отключить, чтобы увидеть, влияют ли они на глобальное время компиляции ( Preferences / Validationsили Preferences / XML / ...если у вас установлен WTP)
  • если новая установка eclipse, ссылающаяся на ту же рабочую область (см. этот eclipse.ini для получения дополнительной информации), приводит к той же проблеме (с автоматической активацией сборки)

Обратите внимание, что ошибка 329657 (открыта в 2011 г., в процессе выполнения в 2014 г.) связана с прерыванием (слишком долгой) сборки вместо ее отмены :

Между прерыванием сборки и отменой есть важное различие.

  • Когда сборка отменяется, она обычно обрабатывает это, отбрасывая состояние инкрементной сборки и позволяя следующей сборке быть полным перестроением. В некоторых проектах это может быть довольно дорого.
    Как пользователь, я думаю, что лучше дождусь завершения 5-секундной инкрементальной сборки, чем отменил бы ее и после этого завершил бы 30-секундную перестройку.

  • Идея прерывания заключается в том, что разработчик может более эффективно обрабатывать прерывание, сохраняя его промежуточное состояние и возобновляя его при следующем вызове.
    На практике это сложно реализовать, поэтому наиболее распространенная граница - это проверка на прерывание до / после вызова каждого построителя в цепочке.

 

VonC
источник
См. Также эту ветку
VonC
1
Это неправильный ответ. Project -> Build Automatically всегда не отмечен флажком, но он по-прежнему случайным образом решает обновить рабочее пространство, полностью не позволяя мне делать что-либо в этой гигантской кодовой базе, которую я не могу сократить за время, необходимое для выполнения задач для клиентов.
Спенсер Уильямс
15

Вы можете переключиться на ручную сборку, чтобы контролировать, когда это будет сделано. Просто убедитесь, что Project > Build Automaticallyв главном меню не установлен флажок.

Chry Cheng
источник
Спасибо, просто интересно, можете ли вы также сказать мне, что именно строит рабочее пространство?
Super Cat,
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);
}
Taitelman
источник
0

Для тех, кто сталкивается с проблемой, когда автоматическая сборка не отмечена, но проект все еще строится. Убедитесь, что ваш проект не развернут на сервере на вкладке сервера и ему не сказано, чтобы он оставался синхронным.

tw0shoes
источник
Стоит вкратце упомянуть, как определить, действует ли «приказ оставаться синхронным» - я не вижу упоминания об этом, например, ни на вкладке моих серверов, ни когда я проверяю контекстное меню свойств на сервере ..
Razzle