Eclipse可以自动刷新资源吗?


161

Eclipse(带有PyDev的3.4.2)处理不同步资源(已在IDE外部进行编辑的文件)与我使用的其他IDE的方式不同,在该IDE中,只有打开了编辑器的资源才被视为不同步。在Eclipse中,任何资源都可能不同步。

这意味着当我在Eclipse之外更改了任何文件之后执行搜索时,会出现一个错误对话框,告诉我文件不同步,即使它们没有打开的编辑器也是如此。据我所知,没有全局刷新命令,因此我被迫在错误对话框中读取项目名称(我有几个项目),并对每个名称单击鼠标右键并刷新。

我已经检查了中的Refresh Automatically设置Settings > General > Workspace,但这无效。有什么方法可以让Eclipse始终仅从磁盘加载非活动资源?


Eclipse 3.7+的最新答案是第二答案。
Paul Verest 2013年

您甚至可以使用远程系统资源管理器(RSE)与远程文件同步
Christophe Roussy


@鲍里斯,这个问题是几年前问的。在其他应标明为重复一个。
Glenn Slayden '17

Answers:


199

此问题将在Eclipse 3.7(Indigo)中修复。虽然“ 自动刷新 ”最终确实会使资源恢复同步,但是刷新挂钩仅适用于Windows,因此在Linux和Mac OS上,它必须定期轮询文件系统。

从3.7开始,有一个新的首选项Settings > General > Workspace > Refresh On Access(又名“轻量级刷新”)。当发现资源“不同步”时,此首选项使Eclipse自动刷新资源。当打开,读取或搜索文件时,它将防止发生不同步错误。

另请参阅:https : //bugs.eclipse.org/303517


61
这是一个选择,使人感到困惑。我从未从未刷新过不同步的文件。
ChristofferHammarström,

18
。:(我漫长而艰难的战斗打击使其成为一个选项,你是对的,这太疯狂了。
詹姆斯·布莱克

6
如果您想将此选项作为Eclipse 3.8 / 4.2中的默认选项,请在此处投票:bugs.eclipse.org/340977
James Blackburn

5
我虽然使用IntelliJ IDEA。我永远不必担心保存文件,因为它们是自动保存的。它只是工作。如果文件在磁盘上更改,则它在IDE中也会更改。发生冲突时,它会警告您并允许您进行区分和合并。如果更糟的话,它具有本地历史记录,因此您随时可以恢复到几分钟前。
ChristofferHammarström'3

1
@ChristofferHammarström:Eclipse也具有本地历史记录:右键单击文件编辑器>比较方式>本地历史记录。
ccpizza

28

我认为,如果您在“项目资源管理器”中单击项目节点,然后按F5或右键单击并选择“刷新”,则将刷新该项目的所有资源。另外,如果您按住CTRL键并单击多个项目,则应该能够同时刷新多个项目。

只需单击一个项目,按CTRL + A即可选择所有内容,然后按F5即可完全满足您的需要-刷新所有内容。

如果有机会,我将必须对此进行测试,但是我相信这是我过去克服类似问题的方式。


我注意到这个答案通常会被否决。我想指出的是,问题是针对特定版本的Eclipse:3.4.2。正如James Blackburn的回答中所述实际上直到3.7版的靛蓝Eclipse才没有刷新异步资源的自动方法。此答案中描述的方法是在3.4.2版(和3.7 Indigo之前的任何其他版本)中实现此目的的唯一方法。


13
请注意,如果关闭了多个选定的项目,则刷新它们将不起作用-您需要先取消选择已关闭的项目。或者,当在“包资源管理器”或“导航器”视图中选择任何项目时,按F5键将刷新所有打开的项目(按住Ctrl键单击以取消选择,单击空白区域不起作用)。
汤姆·克利夫特

71
对任何人都没有冒犯,但是为什么对如何使Eclipse自动执行某问题的可接受答案为什么描述了如何手动进行?
斯雷克尔2011年

9
@Srekel因为在发布时,这是执行@DNS想要的操作的唯一方法。根据@James Blackburn的最新答案,在最初发布此问题后,实际上已报告并纠正了一个问题。对于较新版本的Eclipse,此答案不正确。但是,该问题具体引用了Eclipse 3.4.2-这是解决问题中提出的问题的方法。
Thomas Owens

21

失步问题在eclipse IDE中很常见,因此您必须检查此选项窗口->首选项->工作区->使用本机挂钩或轮询刷新。


6
我相信这是当前的正确答案,至少自Eclipse Mars起。
Henno Vermeulen

1
在Ubuntu 14.04上的Eclipse 4.5上,此复选框不适用于我。在外部更改文件后,Eclipse直到我在Eclipse中打开此文件或进行刷新后才看到它。因此.css,例如,当我从eclipse运行服务器应用程序时从外部编辑器更新此文件时,浏览器将看不到文件的更新。为了解决这个问题,我使用了此插件,该复选框使复选框实际起作用。看到这个答案
Ruslan Stelmachenko

这是该版本的工作选项Neon.3 Release (4.6.3)
Kimchi Man

在Mac上的Neon.3中,该选项位于“首选项”>“常规”>“工作区”>“使用本机挂钩或轮询刷新”。
jmelvin

5

全局刷新-在包资源管理器中未选择任何内容(或所有内容),然后按F5键(或右键单击空白区域并选择“刷新”)。当然,如果您有大型项目,这可能会花费很长时间。


它不是自动的,但是非常有效(+1)。
loved.by.Jesus

5

Eclipse Helios在“首选项”>“常规”>“工作空间”中具有内置的刷新功能。在禁用自动构建的位置相同。选择自动刷新。具有相同功能的插件是Andrei Loskutov的Filesync插件。更新站点地址为:http : //andrei.gmxhome.de/eclipse/。在安装过程中,选择Eclipse 3.5-3.7插件> FileSync。


4

鉴于Java 7具有用于文件系统挂钩的api,因此有人认为可以在Eclipse中更好地处理刷新。

编辑:实际上,有一个使用此机制的插件:https : //github.com/psxpaul/EclipseJava7Refresher


感谢您的插件。没有它,即使启用了“窗口->首选项->常规->工作区->使用本机钩子或轮询刷新”,我在Ubuntu上的Eclipse也看不到文件的外部更改。
Ruslan Stelmachenko

3

也许您应该在Eclipse网站上添加功能请求:

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

我认为添加首选项来自动刷新过期资源是一个好主意。


3

Eclipse中确实缺少全局刷新。如果您已关闭选择中包含的项目,则上述选择所有项目然后运行刷新(例如F5)的过程将不起作用。这意味着,如果您像我一样关闭了所有项目中的1/2,则您会发现自己手动按住Ctrl键单击了数十个项目。这是非常痛苦的。我希望Eclipse只是忽略已关闭的项目。


3

全局刷新实际上存在于纯Eclipse中,没有任何插件,也没有选择工作区中的每个项目。

基本上,您需要在项目浏览器中取消选择所有内容,然后按F5。为此,请在项目资源管理器中按住Ctrl键并单击选定的资源,然后单击F5。


2

是的,“刷新访问”早就应该了……对此的回答和类似的查询通常建议启用全局自动刷新,这对于大型远程项目可能需要一定的时间。实际上,有些人会说“访问时刷新”应该是原始的(<3.x)默认行为。


2

我设法通过创建一个新的“外部工具”运行配置来解决此问题,该配置执行一个空白批处理文件。在运行配置中,可以使它在完成后刷新工作空间。然后,我使用实用上的宏创建了一个宏,其中一个是执行最后一个外部工具运行配置(刷新工作区),然后是2)执行最后一个调试运行配置(运行我的应用)。如果取消选中“分配控制台”,则完成的外部工具条目将不会显示在调试窗口中。



1

对于启动,有一个选项可以自动刷新文件

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

单击它以使“新”开始蚀。:)

版本:Eclipse 4.12

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.