Eclipse可以自动刷新资源吗?

DNS*_*DNS 155 eclipse ide pydev

Eclipse(带有PyDev的3.4.2)处理不同步的资源(已经在IDE之外编辑的文件)与我使用的其他IDE不同,其中只有打开编辑器的资源被认为是不同步的.在Eclipse中,任何资源都可能不同步.

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

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

Jam*_*urn 196

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

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

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

  • 令人难以置信的是,这是一个*选项*.我从来没有刷新过不同步的文件. (59认同)
  • :(我为了让它成为一个选择而奋斗很长时间.你是对的,这很疯狂. (17认同)
  • 如果您希望此选项成为Eclipse 3.8/4.2中的默认选项,请点击此处:http://bugs.eclipse.org/340977 (6认同)
  • 我虽然使用IntelliJ IDEA.我永远不必担心保存文件,因为它们会自动保存.它只是有效.如果磁盘上的文件发生更改,则会在IDE中更改.当发生冲突时,它会警告您,并允许您进行差异和合并.如果情况变得更糟,它会有本地历史记录,因此您可以随时恢复到几分钟前. (4认同)

Tho*_*ens 28

我想如果您单击Project Explorer中的项目节点并按F5或右键单击并选择Refresh,将刷新该项目的所有资源.此外,如果您按CTRL +单击多个项目,您应该能够同时刷新多个项目.

单击一个项目,一个CTRL + A来选择所有内容,一个F5应该完全按照你的需要 - 刷新一切.

当我有机会时,我将不得不对此进行测试,但我相信这是我过去克服类似问题的方法.


我注意到这个答案经常被投票决定.我想指出的是,问题涉及Eclipse的特定版本:3.4.2.实际上没有自动方法来刷新不同步的资源,直到版本3.7 Indigo of Eclipse,正如James Blackburn的回答中提到的那样.本答案中描述的方法是在3.4.2版本(以及3.7 Indigo之前的任何其他版本)中实现此目的的唯一方法.

  • 对任何人都没有冒犯,但为什么有关如何让Eclipse自动执行某些操作的问题的接受答案是如何手动执行此操作? (71认同)
  • 请注意,如果关闭其中任何项目,则刷新多个选定项目将无效 - 您需要先取消选择已关闭的项目.或者,当在包资源管理器或导航器视图中选择*no*项目时,按F5将刷新所有打开的项目(按住Ctrl键单击取消选择,单击空白空间不起作用). (13认同)
  • @Srekel因为在发布时,这是做@DNS想要做的唯一方法.基于@James Blackburn最近的回答,在最初发布此问题之后,有一个问题实际上已经报告并得到纠正.对于更新版本的Eclipse,这个答案是不正确的.但是,这个问题特别引用了Eclipse 3.4.2 - 这是解决问题中提出的问题的方法. (9认同)

DON*_*DON 16

不同步问题在eclipse IDE中很常见,所以你必须检查这个选项windows - > preference - > Workspace - >使用本机挂钩或轮询刷新.

  • 我相信这是目前正确的答案,至少从Eclipse Mars开始. (4认同)
  • 此复选框在 Ubuntu 14.04 上的 Eclipse 4.5 上对我不起作用。文件的外部更改后,Eclipse 不会看到它,直到我在 Eclipse 中打开该文件或进行刷新。因此,浏览器不会看到“.css”文件的更新,例如,如果我在从 Eclipse 运行服务器应用程序时从外部编辑器更新此文件。为了解决这个问题,我使用了[这个插件](https://github.com/psxpaul/EclipseJava7Refresher),它使复选框真正起作用。请参阅[此答案](http://stackoverflow.com/a/16184117/758991)。 (2认同)

小智 6

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


Ged*_*ius 5

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

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


bro*_*ted 5

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

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