Чи може Eclipse оновити ресурси автоматично?


161

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

Це означає, що коли я здійснюю пошук після того, як будь-який файл змінився поза Eclipse, я отримую діалогове вікно про помилку, яке говорить мені про те, що файли не синхронізовані, навіть якщо у них немає відкритих редакторів. Наскільки я можу сказати, глобальної команди оновлення немає, тому я змушений читати назви проектів (у мене кілька проектів) у діалоговому вікні помилок і робити правою кнопкою миші + оновити для кожної з них.

Я перевірив Refresh Automaticallyналаштування Settings > General > Workspace, але це не впливає. Чи є спосіб отримати Eclipse завжди просто завантажувати з диска неактивні ресурси?


Актуальна відповідь на Eclipse 3.7+ є другою відповіддю.
Пол Верест

Ви навіть можете синхронізувати з віддаленими файлами за допомогою віддаленого провідника системи (RSE)
Крістоф Руссі


@Boris, це питання було задано декількома роками раніше. Інший повинна бути позначена як дублікат цього одного.
Гленн Слейден

Відповіді:


199

Ця проблема буде виправлена ​​у Eclipse 3.7 (Indigo). Хоча " Refresh Automatically " зрештою повертає ресурси в синхронізацію, гак оновлення існує лише для Windows, тому в Linux та Mac OS він повинен періодично опитувати файлову систему.

З 3.7 з'явилася нова вподобання Settings > General > Workspace > Refresh On Access(aka Lightweight Refresh). Цей параметр змушує Eclipse автоматично оновлювати ресурси, коли виявиться, що вони "не синхронізовані". Під час відкриття, читання чи пошуку файлів це запобігає появі помилок із синхронізацією.

Дивіться також: https://bugs.eclipse.org/303517


61
Це глузує розумом, що це варіант . Я ніколи не оновлював свої не синхронізовані файли.
Крістофер Хаммарстрем

18
:( Я боровся довго і важко проти того, щоб зробити його варіантом. Ти маєш рацію, це божевільно
Джеймс Блекберн

6
І якщо ви хочете, щоб ця опція була за замовчуванням у Eclipse 3.8 / 4.2 голосуйте тут: bugs.eclipse.org/340977
Джеймс Блекберн

5
Однак я використовую IntelliJ IDEA. Мені ніколи не доводиться турбуватися про збереження файлів, оскільки вони зберігаються автоматично. Це просто працює. Якщо файл змінюється на диску, він змінюється в IDE. Коли виникає конфлікт, він попереджає вас та дозволяє розминатися та зливатися. Якщо гірше стає гіршим, у ньому є краєзнавча історія, тому ви завжди можете повернутися до декількох хвилин тому.
Крістофер Хаммарстрем

1
@ ChristofferHammarström: Eclipse також має локальну історію: клацніть правою кнопкою миші в редакторі файлів> Порівняти з> Місцева історія.
ccpizza

28

Я думаю, якщо ви натиснете на вузол проекту в Провіднику проектів і натисніть F5 або клацніть правою кнопкою миші та виберіть Оновити, всі ресурси для цього проекту будуть оновлені. Крім того, якщо ви натискаєте CTRL + клацання по декількох проектах, ви зможете оновити кілька проектів одночасно.

Один клік по проекту, CTRL + A, щоб вибрати все, і F5 повинен робити саме те, що потрібно - оновити все.

Мені доведеться перевірити це, коли отримаю можливість, але я вважаю, що саме так я подолав подібні проблеми в минулому.


Я помітив, що ця відповідь звичайно стає голосною. Я хотів би зазначити, що питання стосується конкретної версії Eclipse: 3.4.2. Фактично не було автоматичного методу оновлення ресурсів, що не синхронізувалися, до версії 3.7 Indigo of Eclipse , про що йдеться у відповіді Джеймса Блекберна . Метод, описаний у цій відповіді, є єдиним методом досягнення цього у версії 3.4.2 (та будь-якій іншій версії до 3.7 Indigo).


13
Зауважте, що оновлення декількох вибраних проектів не працюватиме, якщо будь-який із них закритий - спочатку потрібно скасувати вибір закритих проектів. Крім того, коли в огляді пакунків або Навігатора не вибрано жодного проекту, натискання клавіші F5 оновить усі відкриті проекти (натисніть клавішу ctrl, щоб скасувати вибір, натискання порожнього простору не працює).
Том Кліфт

71
Нікого не ображайте, але чому прийнята відповідь на питання про те, як змусити Eclipse зробити щось автоматично, опис того, як це зробити вручну?
Срекель

9
@Srekel Тому що на момент публікації це був єдиний метод зробити те, що @DNS хоче зробити. Виходячи з останньої відповіді @James Blackburn, з’явилася проблема, про яку насправді повідомлялося та була виправлена ​​після першого запитання. З більш новими версіями Eclipse ця відповідь є невірною. Однак у питанні конкретно цитується Eclipse 3.4.2 - це метод вирішення проблеми, представлений у питанні.
Томас Оуенс

21

Проблема поза синхронізацією поширена в IDE затемнення, тому вам доведеться перевірити цю опцію windows -> уподобання -> Workspace -> оновити за допомогою нативної гачки або опитування.


6
Я вважаю, що це наразі правильна відповідь, принаймні з часу Марса затемнення.
Генно Вермеулен

1
Цей прапорець не працює для мене на Eclipse 4.5 на Ubuntu 14.04. Після зовнішньої зміни файлу Eclipse не бачить його, поки я не відкрию цей файл у Eclipse або не зроблять Refresh. Отже, браузер не бачить оновлення .cssфайлу, наприклад, якщо я оновлюю цей файл із зовнішнього редактора під час запуску серверної програми від затемнення. Щоб виправити це, я використав цей плагін, завдяки якому прапорець фактично працює. Дивіться цю відповідь .
Руслан Стельмаченко

Це працює варіант для версіїNeon.3 Release (4.6.3)
Kimchi Man

У Neon.3 на Mac опція знаходиться в налаштуваннях> Загальні> Робоча область> Оновити за допомогою нативної гачки або опитування.
jmelvin

5

Існує глобальне оновлення - нічого не (або всього) не вибрано у програмі провідника пакунків та натисніть F5 (або клацніть правою кнопкою миші на порожньому просторі та виберіть Оновити). Звичайно, це може зайняти досить довго, якщо у вас є великі проекти.


Це не автоматично, але дуже ефективно (+1).
loved.by.Ісус

5

Eclipse Helios має вбудовану функцію оновлення у розділі Налаштування> Загальне> Робоча область. Це там же, де ви відключаєте автоматичні побудови. Виберіть оновлення автоматично. Плагін із такою ж функціональністю - це плагін Filesync Андрія Лоскутова. Адреса сайту оновлення: http://andrei.gmxhome.de/eclipse/ . Під час встановлення виберіть плагіни Eclipse 3.5-3.7> FileSync.


4

Зважаючи на те, що у Java 7 є api-файли для гачків файлової системи, можна подумати, що з оновленням можна оброблятись краще в Eclipse.

Редагувати: насправді є плагін, який використовує цей механізм: https://github.com/psxpaul/EclipseJava7Refresher


Дякуємо за плагін Без цього мій Eclipse в Ubuntu не бачить зовнішніх змін файлів, навіть якщо ввімкнено "Window-> Preferences-> General-> Workspace-> Refresh using native hooks or anlling".
Руслан Стельмаченко

3

Можливо, вам слід додати запит на функцію на сайті затемнення:

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

Я думаю, що було б чудовою ідеєю додати перевагу автоматичному оновленню застарілих ресурсів.


3

Глобальне оновлення дійсно відсутнє в Eclipse. Наведена вище процедура вибору всіх проектів та запуску оновлення (наприклад, F5) не працює, якщо у вашому виборі були закриті проекти. Це означає, що якщо у вас закрито 1/2 ваших багатьох проектів, як і я, ви опинитесь вручну, клацнувши Ctrl, через десятки проектів. Це досить болісно. Я б хотів, щоб Eclipse просто ігнорував закриті проекти.


3

Глобальне оновлення насправді існує у звичайному Eclipse без плагінів та без вибору кожного проекту у вашій робочій області.

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


2

Так, оновлення доступу вже давно назріло ... тими відповідями на цей та подібні запити зазвичай пропонується включити глобальне автоматичне оновлення, що може зайняти вік для великих віддалених проектів. Насправді є такі, хто сказав би, що Refresh on Access повинен був бути оригінальним (<3.x) типовим поведінкою ...


2

Мені вдалося вирішити це, створивши новий конфігурацію запуску "зовнішнього інструменту", який виконує порожній пакетний файл. У налаштуваннях запуску ви можете оновити робочу область після її завершення. Потім я створив макрос, використовуючи Practical Macro, який 1) виконує останню конфігурацію запуску зовнішнього інструменту (оновлення робочої області), потім 2) виконує останню конфігурацію запуску налагодження (запуск мого додатка). Якщо зняти прапорець "Виділити консоль", завершений зовнішній запис інструменту не з’явиться у вікні налагодження.


1

Навіть якщо рішення, запропоновані іншими особами, дійсно правильні, у вас є плагін " Refresh All " для Eclipse. Просто додайте сторінку " Оновлення" до свого списку сайтів оновлень Eclipse, щоб встановити його в IDE.


2
Коли я натискаю ці посилання, я отримую 404. Проект ще живий?
Еран Харел

1
Дійсно, цей проект, здається, мертвий :(
Ромен Лінсолас

1

Для запуску є можливість автоматичного оновлення файлів у

Window -> Preferences -> General -> Startup and Shutdown -> Refresh workspace on startup

Клацніть його, щоб мати «свіжий» старт у затемненні. :)

Версія: Eclipse 4.12

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.