Может ли Eclipse обновлять ресурсы автоматически? - PullRequest
154 голосов
/ 31 июля 2009

Eclipse (3.4.2 с PyDev) имеет дело с несинхронизированными ресурсами (файлами, которые были отредактированы вне IDE) в отличие от других IDE, которые я использовал, где только ресурсы с открытыми редакторами считаются вне из-синхронизации. В Eclipse любой ресурс может быть не синхронизирован.

Это означает, что когда я выполняю поиск после изменения любого файла вне Eclipse, я получаю диалоговое окно с сообщением об ошибке синхронизации файлов, даже если у них нет открытых редакторов. Насколько я могу судить, команды глобального обновления не существует, поэтому я вынужден прочитать имена проектов (у меня есть несколько проектов) в диалоге ошибок и выполнить щелчок правой кнопкой мыши + обновить для каждого из них.

Я проверил настройку Refresh Automatically в Settings > General > Workspace, но это не имеет никакого эффекта. Есть ли способ заставить Eclipse всегда просто загружать неактивные ресурсы с диска?

Ответы [ 12 ]

193 голосов
/ 18 мая 2011

Эта проблема будет исправлена ​​в Eclipse 3.7 (Индиго). В то время как « Автоматическое обновление » в конечном итоге возвращает ресурсы к синхронизации, ловушка обновления существует только для Windows, поэтому в Linux и Mac OS необходимо периодически опрашивать файловую систему.

Начиная с версии 3.7 добавлено новое предпочтение Settings > General > Workspace > Refresh On Access (облегченное обновление). Это предпочтение заставляет Eclipse автоматически обновлять ресурсы, когда обнаруживает, что они «не синхронизированы». При открытии, чтении или поиске файлов это предотвратит возникновение несинхронизированных ошибок.

Смотри также: https://bugs.eclipse.org/303517

28 голосов
/ 31 июля 2009

Я думаю, что если вы щелкнете по узлу проекта в Project Explorer и нажмете F5 или щелкните правой кнопкой мыши и выберите «Обновить», все ресурсы для этого проекта будут обновлены. Кроме того, если вы нажмете CTRL + щелкните несколько проектов, вы сможете обновить несколько проектов одновременно.

Один клик по проекту, сочетание клавиш CTRL + A, чтобы выделить все, и F5 должен сделать именно то, что вам нужно - обновить все.

Мне придется проверить это, когда я получу шанс, но я верю, что именно так я преодолел подобные проблемы в прошлом.


Я заметил, что за этот ответ обычно голосуют. Я хотел бы отметить, что этот вопрос относится к конкретной версии Eclipse: 3.4.2. На самом деле не было автоматического способа обновления несинхронизированных ресурсов до версии 3.7 Индиго из Eclipse , как упоминалось в ответе Джеймса Блэкберна . Метод, описанный в этом ответе, является единственным методом достижения этого в версии 3.4.2 (и любой другой версии до 3.7 Indigo).

16 голосов
/ 14 ноября 2015

Проблема отсутствия синхронизации часто встречается в Eclipse IDE, поэтому вы должны проверить эту опцию Windows -> Preference -> Workspace -> Обновить, используя собственные перехватчики или опросы.

4 голосов
/ 24 апреля 2013

Учитывая, что в Java 7 есть API для хуков файловой системы, можно подумать, что обновление может быть лучше обработано в Eclipse.

Редактировать: На самом деле, есть плагин, который использует этот механизм: https://github.com/psxpaul/EclipseJava7Refresher

4 голосов
/ 02 апреля 2011

Eclipse Helios обладает встроенной функцией обновления в «Предпочтения»> «Основные»> «Рабочая область». Это там же, где вы отключаете автоматическую сборку. Выберите обновить автоматически. Плагин с той же функциональностью - плагин Filesync от Андрея Лоскутова. Адрес сайта обновления: http://andrei.gmxhome.de/eclipse/. Во время установки выберите Eclipse 3.5-3.7 plugins> FileSync.

4 голосов
/ 31 июля 2009

Существует глобальное обновление - не выбирайте ничего (или все) в проводнике пакетов и нажмите F5 (или щелкните правой кнопкой мыши пустое место и выберите Обновить). Конечно, это может занять довольно много времени, если у вас большие проекты.

3 голосов
/ 10 августа 2012

Глобальное обновление фактически существует в обычном Eclipse без каких-либо плагинов и без выбора каждого проекта в вашей рабочей области.

В основном вам нужно отменить выделение всего в проводнике проекта и нажать F5. Для этого нажмите Ctrl + клик по выбранному ресурсу в проводнике проекта и нажмите F5.

3 голосов
/ 08 июля 2011

Глобальное обновление действительно отсутствует в Eclipse. Вышеуказанная процедура с выбором всех проектов и последующим выполнением обновления (например, F5) не работает, если вы закрыли проекты, включенные в ваш выбор. Это означает, что если вы закрыли половину из многих своих проектов, как я, вы вручную нажимаете Ctrl, просматривая десятки проектов. Это довольно больно. Я бы хотел, чтобы Eclipse просто игнорировал закрытые проекты.

3 голосов
/ 01 августа 2009

Возможно, вам следует добавить запрос функции на сайте Eclipse:

https://bugs.eclipse.org/bugs/

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

2 голосов
/ 24 августа 2011

Мне удалось решить эту проблему путем создания новой конфигурации запуска «внешнего инструмента», которая выполняет пустой пакетный файл. В конфигурации конфигурации вы можете обновить рабочую область после завершения. Затем я создал макрос с использованием Practical Macro, который 1) выполняет последнюю настройку запуска внешнего инструмента (обновляет рабочее пространство), затем 2) выполняет последнюю конфигурацию запуска отладки (работает мое приложение). Если снять флажок «Выделить консоль», то заполненная запись внешнего инструмента не будет отображаться в окне отладки.

...