Eclipse สามารถรีเฟรชทรัพยากรโดยอัตโนมัติได้หรือไม่?


161

Eclipse (3.4.2 กับ PyDev) จัดการกับทรัพยากรที่ไม่ได้ทำการซิงค์ (ไฟล์ที่ถูกแก้ไขนอก IDE) แตกต่างจาก IDE อื่น ๆ ที่ฉันเคยใช้โดยที่ทรัพยากรที่มีโปรแกรมแก้ไขเปิดอยู่เท่านั้นถือว่าเป็น out-of-sync . ใน Eclipse ทรัพยากรใด ๆ ก็ตามที่ไม่สามารถซิงค์ได้

ซึ่งหมายความว่าเมื่อฉันทำการค้นหาหลังจากไฟล์ใด ๆ มีการเปลี่ยนแปลงนอก Eclipse ฉันจะได้รับกล่องโต้ตอบข้อผิดพลาดบอกฉันว่าไฟล์นั้นไม่ซิงค์แม้ว่าพวกเขาจะไม่มีบรรณาธิการที่เปิดอยู่ก็ตาม เท่าที่ฉันสามารถบอกได้ไม่มีคำสั่งรีเฟรชทั่วโลกดังนั้นฉันถูกบังคับให้อ่านชื่อโครงการ (ฉันมีหลายโครงการ) ในกล่องโต้ตอบข้อผิดพลาดและทำการคลิกขวา + รีเฟรชสำหรับแต่ละรายการ

ฉันตรวจสอบการRefresh Automaticallyตั้งค่าSettings > General > Workspaceแล้ว แต่ไม่มีผลอะไร มีวิธีใดที่จะทำให้ Eclipse โหลดทรัพยากรที่ไม่ทำงานจากดิสก์เสมอ


คำตอบล่าสุดสำหรับ Eclipse 3.7+ อยู่ในคำตอบที่ 2
พอลเวสต์

คุณสามารถซิงค์กับไฟล์จากระยะไกลได้โดยใช้ remote system explorer (RSE)
Christophe Roussy

2
อาจเป็นeclipse
Boris Lopez

@ Boris คำถามนี้ถูกถามเมื่อหลายปีก่อน อื่น ๆควรจะทำเครื่องหมายว่าซ้ำของนี้อย่างใดอย่างหนึ่ง
Glenn Slayden

คำตอบ:


199

ปัญหานี้จะได้รับการแก้ไขใน Eclipse 3.7 (Indigo) ในขณะที่ " รีเฟรชอัตโนมัติ " จะนำทรัพยากรกลับมาซิงค์กันในที่สุดตะขอรีเฟรชจะมีอยู่สำหรับ Windows เท่านั้นดังนั้นสำหรับ Linux และ Mac OS จะต้องสำรวจความคิดเห็นของระบบไฟล์เป็นระยะ ๆ

จาก 3.7 มีการตั้งค่าใหม่Settings > General > Workspace > Refresh On Access(aka Lightweight Refresh) การตั้งค่านี้ทำให้ Eclipse รีเฟรชทรัพยากรโดยอัตโนมัติเมื่อพบว่าพวกเขา 'หมดซิงค์' เมื่อเปิดอ่านหรือค้นหาไฟล์มันจะป้องกันข้อผิดพลาดจากการซิงค์ไม่ให้เกิดขึ้น

ดูเพิ่มเติมที่: https://bugs.eclipse.org/303517


61
มัน boggles ใจว่านี่เป็นตัวเลือก ฉันไม่เคยรีเฟรชไฟล์ที่ไม่ซิงค์กันเลย
Christoffer Hammarström

18
:( ฉันต่อสู้มาอย่างยาวนานและหนักหน่วงกับการทำให้เป็นตัวเลือกคุณพูดถูกมันบ้า
James Blackburn

6
และหากคุณต้องการให้ตัวเลือกนี้เป็นค่าเริ่มต้นใน Eclipse 3.8 / 4.2 โหวตได้ที่นี่: bugs.eclipse.org/340977
James Blackburn

5
ฉันใช้ IntelliJ IDEA ฉันไม่ต้องกังวลกับการบันทึกไฟล์เพราะมันถูกบันทึกโดยอัตโนมัติ มันใช้งานได้ หากไฟล์มีการเปลี่ยนแปลงบนดิสก์มันจะเปลี่ยนใน IDE เมื่อมีข้อขัดแย้งมันจะเตือนคุณและช่วยให้คุณแตกต่างและผสาน หากแย่กว่านั้นมาที่เลวร้ายที่สุดมันมีประวัติท้องถิ่นเพื่อให้คุณสามารถย้อนกลับไปที่ไม่กี่นาทีที่ผ่านมา
Christoffer Hammarström

1
@ ChristofferHammarström: Eclipse ยังมีประวัติในพื้นที่: คลิกขวาในตัวแก้ไขไฟล์> เปรียบเทียบกับ> ประวัติท้องถิ่น
ccpizza

28

ฉันคิดว่าถ้าคุณคลิกที่โหนดโครงการใน Project Explorer และกด F5 หรือคลิกขวาและเลือกรีเฟรชทรัพยากรทั้งหมดสำหรับโครงการนั้นจะถูกรีเฟรช นอกจากนี้หากคุณ CTRL + คลิกที่หลายโครงการคุณควรจะรีเฟรชหลายโครงการในเวลาเดียวกัน

คลิกครั้งเดียวในโครงการ CTRL + A เพื่อเลือกทุกอย่างและ F5 ควรทำสิ่งที่คุณต้องการ - รีเฟรชทุกอย่าง

ฉันจะต้องทดสอบสิ่งนี้เมื่อฉันมีโอกาส แต่ฉันเชื่อว่านี่เป็นวิธีที่ฉันเอาชนะปัญหาที่คล้ายกันในอดีต


ฉันสังเกตเห็นว่าคำตอบนี้ได้รับการโหวตเป็นประจำ ฉันต้องการจะชี้ให้เห็นว่าคำถามหมายถึง Eclipse เวอร์ชัน 3.4.2 ที่เฉพาะเจาะจง มีวิธีการจริงไม่มีอัตโนมัติเพื่อฟื้นฟูออกจากซิงค์ทรัพยากรจนถึงรุ่น 3.7 สีครามของ Eclipseเป็นที่กล่าวถึงในคำตอบของเจมส์แบลก วิธีที่อธิบายไว้ในคำตอบนี้เป็นวิธีเดียวที่จะทำให้ได้สิ่งนี้ในเวอร์ชั่น 3.4.2 (และเวอร์ชั่นอื่น ๆ ก่อน 3.7 Indigo)


13
โปรดทราบว่าการรีเฟรชโครงการที่เลือกหลายโครงการจะไม่ทำงานหากโครงการใดโครงการหนึ่งถูกปิด - คุณต้องยกเลิกการเลือกโครงการที่ปิดก่อน อีกทางหนึ่งเมื่อไม่มีการเลือกโครงการในมุมมอง Package Explorer หรือ Navigator ที่กด F5 จะรีเฟรชโครงการที่เปิดอยู่ทั้งหมด (ctrl-click เพื่อยกเลิกการเลือกการคลิกที่พื้นที่ว่างจะไม่ทำงาน)
Tom Clift

71
ไม่มีความผิดต่อใคร แต่ทำไมคำตอบที่ได้รับการยอมรับสำหรับคำถามเกี่ยวกับวิธีทำให้ Eclipse ทำบางสิ่งโดยอัตโนมัติคำอธิบายวิธีการทำด้วยตนเอง
Srekel

9
@Srekel เนื่องจากในขณะที่ทำการโพสต์นี่เป็นวิธีเดียวที่จะทำสิ่งที่ @DNS ต้องการทำ จากคำตอบล่าสุดของ @James Blackburn มีปัญหาที่ได้รับการรายงานจริงและแก้ไขได้ดีหลังจากคำถามนี้ถูกโพสต์ครั้งแรก ด้วยเวอร์ชันล่าสุดของ Eclipse คำตอบนี้ไม่ถูกต้อง อย่างไรก็ตามคำถามดังกล่าวอ้างถึง Eclipse 3.4.2 - นี่เป็นวิธีการแก้ปัญหาที่นำเสนอในคำถาม
โทมัสโอเวนส์

21

ปัญหาการซิงโครไนซ์ไม่เป็นเรื่องปกติใน eclipse IDE ดังนั้นคุณต้องตรวจสอบตัวเลือก windows -> preferences -> Workspace -> refresh โดยใช้ native hooks หรือ polling


6
ฉันเชื่อว่านี่เป็นคำตอบที่ถูกต้องอย่างน้อยใน Eclipse Mars
Henno Vermeulen

1
ช่องทำเครื่องหมายนี้ไม่ทำงานสำหรับฉันใน Eclipse 4.5 บน Ubuntu 14.04 หลังจากการเปลี่ยนแปลงไฟล์ภายนอก Eclipse ไม่เห็นจนกว่าฉันจะเปิดไฟล์นี้ใน Eclipse หรือทำการรีเฟรช ดังนั้นเบราว์เซอร์จะไม่เห็นการอัปเดต.cssไฟล์เช่นถ้าฉันอัปเดตไฟล์นี้จากตัวแก้ไขภายนอกในขณะที่รันแอปเซิร์ฟเวอร์จาก eclipse ในการแก้ไขปัญหานี้ฉันใช้ปลั๊กอินนี้ซึ่งทำให้ช่องทำเครื่องหมายใช้งานได้จริง ดูคำตอบนี้
Ruslan Stelmachenko

นี่เป็นตัวเลือกที่ใช้งานได้สำหรับเวอร์ชั่นNeon.3 Release (4.6.3)
Kimchi Man

ใน Neon.3 บน Mac ตัวเลือกอยู่ในการกำหนดค่าตามความชอบ> ทั่วไป> พื้นที่ทำงาน> รีเฟรชโดยใช้ hooks หรือการสำรวจความคิดเห็น
jmelvin

5

มีการรีเฟรชทั่วโลก - ไม่มีสิ่งใด (หรือทุกอย่าง) เลือกไว้ในแพ็คเกจ explorer และกด F5 (หรือคลิกขวาบนพื้นที่ว่างแล้วเลือกรีเฟรช) แน่นอนว่าอาจใช้เวลาค่อนข้างนานหากคุณมีโครงการขนาดใหญ่


มันไม่อัตโนมัติ แต่มีประสิทธิภาพมาก (+1)
รัก

5

Eclipse Helios มีคุณสมบัติรีเฟรชในตัวที่การกำหนดค่าตามความชอบ> ทั่วไป> เวิร์กสเปซ มันอยู่ในจุดเดียวกับที่คุณปิดการสร้างอัตโนมัติ เลือกรีเฟรชอัตโนมัติ ปลั๊กอินที่มีฟังก์ชั่นเดียวกันคือปลั๊กอิน Filesync ของ Andrei Loskutov ที่อยู่เว็บไซต์ update คือhttp://andrei.gmxhome.de/eclipse/ ระหว่างการติดตั้งเลือกปลั๊กอิน Eclipse 3.5-3.7> FileSync


4

เนื่องจาก Java 7 มี api สำหรับ hooks ระบบไฟล์หนึ่งจะคิดว่าการรีเฟรชสามารถจัดการได้ดีขึ้นใน Eclipse

แก้ไข: จริงๆแล้วมีปลั๊กอินที่ใช้กลไกนี้: https://github.com/psxpaul/EclipseJava7Refresher


ขอบคุณสำหรับปลั๊กอิน หากไม่มี Eclipse ของฉันบน Ubuntu จะไม่เห็นการเปลี่ยนแปลงภายนอกของไฟล์แม้ว่าจะเปิดใช้งาน "Window-> Preferences-> General-> Workspace-> Refresh with native hooks or polling"
Ruslan Stelmachenko

3

บางทีคุณควรเพิ่มคำขอคุณลักษณะบนไซต์ eclipse:

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

ฉันคิดว่ามันเป็นความคิดที่ดีที่จะเพิ่มการตั้งค่าสำหรับการรีเฟรชทรัพยากรที่ล้าสมัยโดยอัตโนมัติ


3

การรีเฟรชทั่วโลกหายไปใน Eclipse ขั้นตอนด้านบนที่มีการเลือกโครงการทั้งหมดแล้วเรียกใช้การรีเฟรช (เช่น F5) ไม่ทำงานหากคุณปิดโครงการที่รวมอยู่ในการเลือกของคุณ ซึ่งหมายความว่าหากคุณมี 1/2 โครงการหลายโครงการของคุณปิดเหมือนที่ฉันทำคุณจะพบว่าคุณกด Ctrl ด้วยตนเองผ่านหลายสิบโครงการ มันค่อนข้างเจ็บปวด ฉันหวังว่า Eclipse จะไม่สนใจโครงการที่ปิดอยู่


3

การรีเฟรชทั่วโลกนั้นมีอยู่ใน Eclipse ธรรมดาโดยไม่มีปลั๊กอินใด ๆ และไม่ได้เลือกทุกโครงการในพื้นที่ทำงานของคุณ

โดยทั่วไปคุณต้องยกเลิกการเลือกทุกอย่างใน explorer โครงการของคุณและกด F5 ในการทำเช่นนั้น Ctrl + คลิกทรัพยากรที่เลือกใน project explorer และกด F5


2

ใช่ Refresh on Access เกินกำหนดนาน ... คำตอบเหล่านี้และคำถามที่คล้ายกันมักจะแนะนำให้เปิดใช้งานการรีเฟรชอัตโนมัติทั่วโลกซึ่งอาจใช้เวลานานสำหรับโครงการระยะไกลขนาดใหญ่ ในความเป็นจริงมีคนที่จะบอกว่า Refresh on Access ควรเป็นพฤติกรรมเริ่มต้นดั้งเดิม (<3.x) ...


2

ฉันจัดการเพื่อแก้ปัญหานี้โดยการสร้าง "เครื่องมือภายนอก" เรียกใช้ config ที่เรียกใช้ไฟล์แบตช์เปล่า ในการเรียกใช้การกำหนดค่าคุณสามารถให้มันฟื้นฟูพื้นที่ทำงานเมื่อเสร็จสมบูรณ์ จากนั้นฉันสร้างแมโครโดยใช้แมโครจริงที่ 1) เรียกใช้งานเครื่องมือภายนอกล่าสุดรันการกำหนดค่า (รีเฟรชเวิร์กสเปซ) จากนั้น 2) เรียกใช้งานการดีบักครั้งล่าสุด (เรียกใช้แอปของฉัน) หากคุณยกเลิกการเลือก "จัดสรรคอนโซล" รายการเครื่องมือภายนอกที่เสร็จสมบูรณ์จะไม่ปรากฏในหน้าต่างแก้ไขข้อบกพร่อง


1

แม้ว่าโซลูชันที่ผู้อื่น perso เสนอนั้นถูกต้องแน่นอนคุณมีปลั๊กอิน" Refresh All " สำหรับ Eclipse เพียงเพิ่มหน้าอัปเดตลงในรายการ Eclipse ของเว็บไซต์อัปเดตเพื่อติดตั้งใน IDE ของคุณ


2
ฉันได้รับ 404 เมื่อฉันคลิกลิงค์เหล่านี้ โครงการยังมีชีวิตอยู่หรือไม่?
Eran Harel

1
อันที่จริงโครงการนี้ดูเหมือนจะตายแล้ว :(
Romain Linsolas

1

สำหรับการเริ่มต้นขึ้นมีตัวเลือกในการรีเฟรชไฟล์โดยอัตโนมัติ

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

คลิกเพื่อเริ่มต้น "สด" ใน eclipse :)

เวอร์ชัน: Eclipse 4.12

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.