Bisakah Eclipse menyegarkan sumber daya secara otomatis?

161

Eclipse (3.4.2 with PyDev) berurusan dengan sumber daya tidak sinkron (file yang telah diedit di luar IDE) berbeda dari IDE lain yang saya gunakan, di mana hanya sumber daya dengan editor terbuka yang dianggap tidak sinkron. . Di Eclipse, sumber daya apa pun bisa tidak sinkron.

Ini berarti bahwa ketika saya melakukan pencarian setelah file apa pun telah berubah di luar Eclipse, saya mendapatkan dialog kesalahan yang memberi tahu saya bahwa file tidak sinkron, bahkan jika mereka tidak memiliki editor terbuka. Sejauh yang saya tahu, tidak ada perintah penyegaran global, jadi saya terpaksa membaca nama proyek (saya punya beberapa proyek) di dialog kesalahan, dan melakukan klik kanan + penyegaran untuk masing-masing.

Saya sudah memeriksa Refresh Automaticallypengaturan Settings > General > Workspace, tetapi ini tidak berpengaruh. Apakah ada cara untuk membuat Eclipse selalu memuat sumber daya tidak aktif dari disk?

DNS
sumber
Jawaban terkini untuk Eclipse 3.7+ ada di jawaban ke-2.
Paul Verest
Anda bahkan dapat menyinkronkan dengan file jarak jauh menggunakan remote system explorer (RSE)
Christophe Roussy
@ Boris, pertanyaan ini ditanyakan beberapa tahun sebelumnya. Yang lain harus ditandai sebagai duplikat dari yang ini .
Glenn Slayden

Jawaban:

199

Masalah ini akan diperbaiki di Eclipse 3.7 (Indigo). Sementara " Refresh Automatically " pada akhirnya membawa sumber daya kembali ke sinkronisasi, kait penyegaran hanya ada untuk Windows, jadi pada Linux dan Mac OS itu harus polling sistem file secara berkala.

Dari 3,7 ada preferensi baru Settings > General > Workspace > Refresh On Access(alias Refresh Ringan). Preferensi ini menyebabkan Eclipse me-refresh sumber daya secara otomatis ketika menemukan bahwa mereka 'tidak sinkron'. Saat membuka, membaca, atau mencari file, itu akan mencegah kesalahan tidak sinkron terjadi.

Lihat juga: https://bugs.eclipse.org/303517

James Blackburn
sumber
61
Ini mengejutkan pikiran bahwa ini adalah opsi . Saya tidak pernah menyegarkan file yang tidak sinkron.
Christoffer Hammarström
18
:( Saya berjuang lama dan keras untuk tidak menjadikannya pilihan. Anda benar, ini gila.
James Blackburn
6
Dan jika Anda ingin opsi ini menjadi default di Eclipse 3.8 / 4.2 pilih di sini: bugs.eclipse.org/340977
James Blackburn
5
Saya menggunakan IntelliJ IDEA. Saya tidak perlu khawatir tentang menyimpan file, karena mereka disimpan secara otomatis. Itu hanya bekerja. Jika file berubah pada disk, itu berubah dalam IDE. Ketika ada konflik itu memperingatkan Anda dan memungkinkan Anda untuk berbeda dan bergabung. Jika lebih buruk menjadi terburuk itu memiliki Sejarah Lokal sehingga Anda selalu dapat kembali ke beberapa menit yang lalu.
Christoffer Hammarström
1
@ ChristofferHammarström: Eclipse juga memiliki sejarah lokal: Klik kanan pada editor file> Bandingkan dengan> Sejarah Lokal.
ccpizza
28

Saya pikir jika Anda mengklik pada simpul proyek di Project Explorer dan tekan F5 atau klik kanan dan pilih Refresh, semua sumber daya untuk proyek itu akan di-refresh. Juga, jika Anda CTRL + klik pada beberapa proyek, Anda harus dapat menyegarkan beberapa proyek pada saat yang sama.

Satu klik pada sebuah proyek, CTRL + A untuk memilih semuanya, dan F5 harus melakukan apa yang Anda butuhkan - menyegarkan semuanya.

Saya harus menguji ini ketika saya mendapatkan kesempatan, tetapi saya percaya ini adalah bagaimana saya mengatasi masalah yang sama di masa lalu.


Saya perhatikan bahwa jawaban ini secara rutin turun sebagai pilihan. Saya ingin menunjukkan bahwa pertanyaannya merujuk pada versi spesifik Eclipse: 3.4.2. Sebenarnya tidak ada metode otomatis untuk menyegarkan sumber daya yang tidak sinkron sampai versi 3.7 Indigo of Eclipse , seperti yang disebutkan dalam jawaban James Blackburn . Metode yang dijelaskan dalam jawaban ini adalah satu-satunya metode untuk mencapai ini dalam versi 3.4.2 (dan versi lain sebelum 3.7 Indigo).

Thomas Owens
sumber
13
Perhatikan bahwa menyegarkan beberapa proyek yang dipilih tidak akan berfungsi jika salah satu dari mereka ditutup - Anda harus membatalkan pilihan proyek yang ditutup terlebih dahulu. Atau, ketika tidak ada proyek yang dipilih dalam tampilan Package Explorer atau Navigator menekan F5 akan menyegarkan semua proyek yang terbuka (ctrl-klik untuk membatalkan pilihan, mengklik ruang kosong tidak bekerja).
Tom Clift
71
Tidak ada pelanggaran kepada siapa pun, tetapi mengapa jawaban yang diterima untuk pertanyaan tentang bagaimana membuat Eclipse melakukan sesuatu secara otomatis adalah deskripsi cara melakukannya secara manual?
Srekel
9
@Srekel Karena pada saat posting, ini adalah satu-satunya metode untuk melakukan apa yang ingin dilakukan @DNS. Berdasarkan jawaban yang lebih baru dari @James Blackburn, ada masalah yang sebenarnya dilaporkan dan diperbaiki setelah pertanyaan ini awalnya diposting. Dengan versi Eclipse yang lebih baru, jawaban ini tidak benar. Namun, pertanyaannya secara spesifik mengutip Eclipse 3.4.2 - ini adalah metode penyelesaian masalah yang disajikan dalam pertanyaan.
Thomas Owens
21

Masalah tidak tersinkronisasi umum terjadi pada IDE gerhana sehingga Anda harus memeriksa opsi windows ini -> preferensi -> Workspace -> refresh menggunakan hook atau polling asli.

MENGENAKAN
sumber
6
Saya percaya ini adalah jawaban yang benar, setidaknya sejak Eclipse Mars.
Henno Vermeulen
1
Kotak centang ini tidak berfungsi untuk saya di Eclipse 4.5 di Ubuntu 14.04. Setelah perubahan eksternal file Eclipse tidak melihatnya sampai saya membuka file ini di Eclipse atau membuat Refresh. Jadi browser tidak melihat pembaruan .cssfile misalnya jika saya memperbarui file ini dari editor eksternal saat menjalankan aplikasi server dari eclipse. Untuk memperbaikinya saya menggunakan plugin ini yang membuat kotak centang benar-benar berfungsi. Lihat jawaban ini .
Ruslan Stelmachenko
Ini adalah opsi yang berfungsi untuk versiNeon.3 Release (4.6.3)
Kimchi Man
Di Neon.3 di Mac, opsinya ada di Preferensi> Umum> Ruang Kerja> Refresh menggunakan kait asli atau polling.
jmelvin
5

Ada penyegaran global - tidak ada yang dipilih (atau semuanya) dalam paket explorer dan tekan F5 (atau klik kanan pada ruang kosong dan pilih Refresh). Tentu saja, ini bisa memakan waktu agak lama jika Anda memiliki proyek besar.

Michael Borgwardt
sumber
Ini tidak otomatis, tetapi sangat efektif (+1).
loved.by.Yesus
5

Eclipse Helios memiliki fitur penyegaran bawaan di Preferences> General> Workspace. Ada di tempat yang sama di mana Anda menonaktifkan build otomatis. Pilih refresh secara otomatis. Plugin dengan fungsi yang sama adalah Plugin Filesync milik Andrei Loskutov. Alamat situs pembaruan adalah: http://andrei.gmxhome.de/eclipse/ . Selama instalasi, pilih plugin Eclipse 3.5-3.7> FileSync.

pengguna466206
sumber
4

Mengingat bahwa Java 7 memiliki api untuk kait sistem file, orang akan berpikir bahwa penyegaran bisa ditangani lebih baik di Eclipse.

Sunting: Sebenarnya, ada plugin yang menggunakan mekanisme ini: https://github.com/psxpaul/EclipseJava7Refresher

Bronsted
sumber
Terima kasih untuk pluginnya. Tanpanya Eclipse saya di Ubuntu tidak melihat perubahan eksternal file bahkan ketika "Window-> Preferences-> General-> Workspace-> Refresh menggunakan hooks asli atau polling" diaktifkan.
Ruslan Stelmachenko
3

Mungkin Anda harus menambahkan permintaan fitur di situs gerhana:

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

Saya pikir itu akan menjadi ide bagus untuk menambahkan preferensi untuk secara otomatis menyegarkan sumber daya yang ketinggalan zaman.


sumber
3

Penyegaran global benar-benar hilang di Eclipse. Prosedur di atas dengan memilih semua proyek dan kemudian menjalankan refresh (mis. F5) tidak berfungsi jika Anda telah menutup proyek yang termasuk dalam pilihan Anda. Ini berarti, jika Anda memiliki 1/2 dari banyak proyek Anda yang ditutup seperti yang saya lakukan, Anda menemukan diri Anda secara manual mengklik-Ctrl melalui puluhan proyek Anda. Ini sangat menyakitkan. Saya berharap Eclipse akan mengabaikan proyek tertutup.

Karol
sumber
3

Penyegaran global sebenarnya ada di Eclipse biasa tanpa plugin apa pun dan tanpa memilih setiap proyek di ruang kerja Anda.

Pada dasarnya Anda perlu membatalkan semua yang ada di penjelajah proyek Anda dan tekan F5. Untuk melakukan itu Ctrl + klik sumber daya yang dipilih di penjelajah proyek dan tekan F5.

Gediminas Aleknavičius
sumber
2

Ya, Refresh on Access sudah lama tertunda ... jawaban untuk ini dan pertanyaan serupa biasanya menyarankan mengaktifkan penyegaran otomatis global, yang bisa memakan waktu lama untuk proyek jarak jauh yang besar. Bahkan ada orang-orang yang akan mengatakan bahwa Refresh on Access seharusnya merupakan perilaku default asli (<3.x) ...

MikeW
sumber
2

Saya berhasil menyelesaikan ini dengan membuat konfigurasi "alat eksternal" baru yang menjalankan file batch kosong. Dalam menjalankan konfigurasi, Anda bisa membuatnya menyegarkan ruang kerja saat selesai. Kemudian saya membuat makro menggunakan Praktis Makro yang 1) menjalankan konfigurasi run tool eksternal terakhir (menyegarkan workspace), lalu 2) mengeksekusi config run debug terakhir (menjalankan aplikasi saya). Jika Anda menghapus centang "Alokasikan konsol" maka entri alat eksternal yang sudah selesai tidak akan muncul di jendela debug.

NateS
sumber
1

Bahkan jika solusi yang diajukan oleh orang lain memang benar, Anda memiliki plugin " Refresh All " untuk Eclipse. Cukup tambahkan halaman Perbarui ke daftar Eclipse Anda tentang situs pembaruan untuk menginstalnya di IDE Anda.

Romain Linsolas
sumber
2
Saya mendapatkan 404 saat mengklik tautan ini. Apakah proyek itu masih hidup?
Eran Harel
1
Memang, proyek ini tampaknya sudah mati :(
Romain Linsolas
1

Untuk Memulai ada opsi untuk menyegarkan file secara otomatis

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

Klik untuk mendapatkan awal yang baru dalam gerhana. :)

Versi: Eclipse 4.12

dicintai.Yesus
sumber