Избегать "ресурс не синхронизирован с файловой системой"

Я разрабатываю код Java с Eclipse и регулярно получаю это сообщение:

Ресурс не синхронизирован с файловой системой.

Щелчок правой кнопкой мыши> Обновить всегда очистит это.

Но почему Eclipse не может обновляться автоматически, когда находит это условие? Есть ли случаи, когда вы хотите, чтобы ресурс был не синхронизирован?

Если есть такие условия, и они не относятся к моей работе, есть ли способ заставить Eclipse автоматически обновляться, когда он сталкивается с этим состоянием? (Я ценю, что он должен обновляться настолько, насколько это необходимо для нормальной разработки, чтобы повысить производительность для разработчиков-людей.)

ОБНОВЛЕНИЕ (2012-06-25): В моем последнем обновлении (версия: Идентификатор сборки выпуска Indigo: 20110615-0604) больше не отображаются Предпочтения - Общие - Рабочая область - Автоматическое обновление Есть опция "Обновить при доступе" - следует ли использовать это?

10 ответов

Решение

Вы можете включить это в Window - Preferences - General - Workspace - Refresh Automatics (называется Refresh с использованием собственных перехватов или опроса в новых сборках)

Настройки Eclipse

Единственная причина, по которой я могу думать, почему это не включено по умолчанию, связана с производительностью.

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

На сайте Eclipse также есть статья об автоматическом обновлении.

По сути, нет внешнего триггера, который уведомляет Eclipse об изменениях файлов за пределами рабочей области. Вместо этого Eclipse использует фоновый поток для отслеживания изменений файлов, которые могут привести к проблемам с производительностью на больших рабочих пространствах.

Просто щелкните правой кнопкой мыши на файле или проекте и нажмите Обновить. Ошибка исчезнет. Я также столкнулся с той же проблемой, и это сработало для меня.

Окно -> Настройки -> Общие -> Рабочая область

Для новой версии Indigo предпочтения изменяются на "Обновить при доступе" и с подробным объяснением: автоматически обновлять изменения внешнего рабочего пространства при доступе через рабочее пространство.

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

Это происходит со мной все время.

Перейдите в журнал ошибок, найдите исключение и откройте несколько уровней, пока не увидите нечто более похожее на основную причину. Это говорит "Ресурс не синхронизирован с файловой системой"?

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

Есть несколько вещей, которые вы можете попробовать. Сначала перейдите в "Окно: Настройки", "Рабочая область" и включите "Автоматическое обновление". Теоретически это должно решить проблему, но для меня это не так.

Во-вторых, если вы выполняете большой рефакторинг с подпакетами, выполняйте подпакеты по одному, снизу вверх, и явно обновляйте файловую систему после переименования каждого подпакета.

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

Когда вы открываете рабочее пространство Eclipse из представления в открытом виде и пытаетесь переименовать проект, вы часто получаете всплывающее предупреждение... "Ресурс" проект "не синхронизирован с файловой системой". Если обновление проекта не устранило проблему, сделайте следующее решение: a. Открытое рабочее пространство БЕЗ нахождения в виде b. Выберите проект в Project Explorer c. ClearCase -> Associate Project (теперь проект должен выглядеть как project []) d. Щелкните правой кнопкой мыши проект -> Обновить (подпапки vob теперь должны быть пустыми) e. Щелкните правой кнопкой мыши проект -> Переименовать... f. Введите новое имя

Теперь вы можете закрыть рабочее пространство, снова открыть его в представлении и обновить проект. Вы также можете отделить проект, если вы предпочитаете, чтобы проект не был связан с VOB.

Если это происходит при попытке удалить папку (в *nix), а "Обновить" не помогает, откройте терминал и найдите символическую ссылку под папкой, которую вы пытаетесь удалить, и удалите ее вручную. Это решило мои проблемы.

Небольшой намек. Сообщение часто появляется во время операции переименования. Быстрый обходной путь для меня требует Ctrl-Y (повторить ярлык) после подтверждения сообщения. Это работает, только если переименование влияет на один файл.

Если вы являетесь обычным пользователем Eclipse, вы могли бы получить эту ошибку много раз. Ошибка просто говорит: "Вы внесли изменения в файлы в вашем рабочем пространстве извне затмения". Простейшим решением было бы выбрать проект и нажать F5 (щелкните правой кнопкой мыши -> Обновить).

если вам нужно больше объяснений, вы можете прочитать с этого сайта

Мне не удалось устранить эту ошибку ни обновлением, ни включением функции "собственного опроса" в рабочем пространстве. Оказалось, мой проект также был открыт в двух случаях затмения. Как только я закрыл другой экземпляр, ошибка исчезла. Поэтому убедитесь, что ваш проект открыт только в одном месте, если вы видите эту ошибку.

Другие вопросы по тегам