2017-02-06 190 views
3

我面临一个令人费解的事实,即更新网站的信息无法更新,尽管我在“首选项”>“安装/更新”可用软件站点中强制重新加载。如何清除Eclipse p2存储库缓存

我有一个本地更新站点(文件:/协议,在Windows上)和一个在线更新站点(https://),我将其作为我正在维护的开源项目的登台/测试更新站点。

我使用本地存储的更新站点项目构建更新站点并在每次构建它时擦干净。当我在不同的Eclipse实例中测试新版本并验证了我的更改后,我将整个更新站点上载到我的服务器。然后,为了模拟用户会做什么,我更新另一个运行在不同物理机器上的Eclipse实例中的插件。

我有(昨天)建立了另一个版本,2.2.0.201702052007并上传到我的服务器。以前的版本是2.2.0.201702042059

我的问题是我的开发机器上的Eclipse实例(Mars.2和Neon)不断报告上一个版本,尽管我重新加载了更新站点信息。但是,其他机器看到新版本没有问题。

这是我已经试过:

  • 重装更新站点的信息:每一次,我收到一条确认消息,说“信息[...]已经从服务器重新加载”但事实证明它没有被重新加载:我看到了旧的功能版本。
  • 从另一台机器上的其他Eclipse实例访问更新站点:我看到新版本。
  • 从浏览器载入更新站点的site.xml文件:我看到新版本。
  • 使用FileZilla将整个更新站点下载到本地文件夹并解压缩content.jarartifacts.jar,以便我可以读取嵌入在这些JAR文件中的XML文件:我看不到旧版本的跟踪。
  • 删除更新站点,重新启动Eclipse并再次添加更新站点:问题仍然存在。
  • 作为最后手段,我从服务器中删除了更新站点的所有文件:Eclipse仍然报告成功地从服务器重新加载信息。
  • 我关闭了VPS上的httpd服务。 Eclipse报告成功,直到我重新启动它,然后失败。但是,一旦Web服务器再次联机,它没有真正发送请求到Web服务器,因为它一直说没有更新站点!因此,在线更新站点现在显示为空,重新启动Eclipse不会更改该更新。
  • [编辑]更令人费解的刷新按钮报告成功,即使没有网络连接,更新站点(网络接口禁用)。[/编辑]

似乎是在供应框架在用户界面和我的服务器之间存在一个缓存,用于报告过时的信息和功能版本,尽管显式请求重新载入了该信息。

是否有任何文件或文件夹,我可以删除以供应框架重置自己?如果可能的话,我会完全禁用它的缓存。

回答

3

我发现Oomph显然在更新站点信息检索过程中有一个操作。

无论如何,我可以恢复正常的操作(现在),并通过首先删除C:\Users\...\.eclipse\org.eclipse.oomph.p2\cache中的相应文件正确重新载入信息。

通过“合适的文件”,我指的是该文件夹中的文件是根据Eclipse实例已知的存储库的URL命名的。

+0

谢谢,很难找到grep搜索发现工作区或eclipse文件夹中没有跟踪。 –

+0

我提出了一个针对这种混淆行为的错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id = 513746 –