Eclipse可以自动刷新资源吗?

问题描述:

Eclipse(3.4.2和PyDev)处理不同步的资源(在IDE之外编辑过的文件)与我使用的其他IDE不同,它只打开编辑器的资源被认为是失效的-同步。在Eclipse中,任何资源都可能不同步。Eclipse可以自动刷新资源吗?

这意味着当我在Eclipse之外的任何文件发生更改后执行搜索时,出现一个错误对话框,告诉我文件不同步,即使它们没有打开的编辑器。据我所知,没有全局刷新命令,所以我不得不在错误对话框中读取项目名称(我有几个项目),并为它们中的每一个都进行右键单击+刷新。

我检查了Settings > General > Workspace中的Refresh Automatically设置,但这没有效果。有什么办法让Eclipse始终只从磁盘加载非活动资源?

+0

Eclipse 3.7+的最新答案在第二个答案中。 – 2013-11-25 13:14:21

+0

您甚至可以使用远程系统资源管理器(RSE)与远程文件同步 – 2015-12-16 11:44:52

+2

[eclipse,外部编辑器编辑的刷新文件]的可能重复(http://stackoverflow.com/questions/13470311/eclipse-refresh-files-edited @byoris, – Boris 2017-02-22 15:38:55

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

从3.7开始,新的偏好Settings > General > Workspace > Refresh On Access(又称轻量级刷新)。此首选项会导致Eclipse在发现它们“不同步”时自动刷新资源。打开,阅读或搜索文件时,它将防止发生不同步错误。

参见:https://bugs.eclipse.org/303517

我想如果您在Project Explorer中单击项目节点并按F5或右键单击并选择刷新,该项目的所有资源都将被刷新。另外,如果你CTRL +点击多个项目,你应该可以同时刷新多个项目。

只需单击一个项目,按CTRL + A即可选择所有内容,而F5应该按照您的需要进行操作 - 刷新所有内容。

当我有机会的时候,我将不得不测试一下,但我相信这就是我过去克服类似问题的方法。


我注意到,这个答案通常是越来越投票。我想指出,这个问题涉及特定版本的Eclipse:3.4.2。实际上没有自动方法来刷新不同步的资源until version 3.7 Indigo of Eclipse,如in James Blackburn's answer所述。这个答案中描述的方法是在3.4.2版本(以及3.7版本以前的任何其他版本)中实现这一点的唯一方法。

+13

请注意,刷新多个选定的项目将无法工作,如果其中任何项目关闭 - 您需要先取消选择关闭的项目。或者,在Package Explorer或Navigator视图中选择* no *项目时,按F5将刷新所有打开的项目(按住Ctrl单击以取消选择,单击空白空间不起作用)。 – 2010-07-16 01:08:19

+70

对任何人都没有冒犯之处,但为什么对于如何让Eclipse自动执行某些操作的问题的接受答案是如何手动执行的? – Srekel 2011-06-24 14:50:39

有一个全局刷新 - 在包资源管理器中没有任何(或全部)选择,并按F5(或右键单击空白区域并选择刷新)。当然,如果你有大型项目,这可能需要相当长的时间。

也许你应该在Eclipse站点添加功能请求:

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

我认为这将是一个伟大的想法添加偏好自动刷新过时资源。

即使其他人提出的解决方案确实是正确的,您仍然可以使用Eclipse的“Refresh All”插件。只需将Update page添加到您的Eclipse更新站点列表中即可将其安装到您的IDE中。

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

是,刷新上访问是姗姗来迟......这些问题的答案,以类似这种询问通常建议使全球自动刷新,这可能需要一个年龄大的远程项目。 实际上,有些人会说,刷新访问应该是原来的(< 3.x)默认行为...

在Eclipse中真正缺少全局刷新。如果您选择了已关闭的项目,则选择所有项目然后运行刷新(例如F5)的上述过程不起作用。这意味着,如果您拥有我的许多项目中的1/2,您会发现自己通过几十个项目手动按住Ctrl单击。这很痛苦。我希望Eclipse会忽略已关闭的项目。

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

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

基本上你需要取消选择你的​​项目浏览器中的所有内容,然后按F5。要做到这一点Ctrl +在项目浏览器中单击所选资源,然后按F5。

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

编辑:其实,有一个使用这个机制插件:https://github.com/psxpaul/EclipseJava7Refresher

失步的问题是在Eclipse IDE中常见的,所以你必须选中此选项窗口 - 使用本机>刷新 - >首选项 - >工作区挂钩或投票。