如何修复损坏的 eclipse $HOME/.p2 存储库?

How can I repair a damaged eclipse $HOME/.p2 repository?

我一直在处理一长串问题,这些问题显然是几周前我的 Ubuntu VM 运行 磁盘 space 不足时开始的。我能够扩展虚拟磁盘并通过它,但似乎在幕后这导致 Eclipse 以某种方式损坏了我的“$HOME/.p2”存储库中的一些 jar。甚至要找出哪些 jar 文件已损坏甚至是一场漫长的斗争,因为 Eclipse 无法安装新插件,说 zip 文件无效,但异常信息并未说明哪个 zip 文件已损坏。

无论如何,通过连接调试器,我能够在我的“$HOME/.p2”树中找出哪个 zip 文件已损坏,以及我因原始文件中缺少信息而提交的错误报告异常实际上几乎立即得到修复(至少在源代码中)。

我现在只剩下一个损坏的“$HOME/.p2”存储库。我发现了五个长度不为零的 jar 文件,但是 "jar tvf" 和 unzip -tq" 都报告了这五个文件的错误(回购中没有其他 jar 有这个问题)。

如果重要,这是坏文件列表:

$HOME/.p2/pool/plugins/org.eclipse.emf.mapping.ecore2ecore.editor_2.7.0.v20160201-0859.jar
$HOME/.p2/pool/plugins/org.eclipse.emf.mapping_2.9.0.v20160201-0859.jar
$HOME/.p2/pool/plugins/org.eclipse.emf.mapping.ecore2xml_2.9.0.v20160201-0859.jar
$HOME/.p2/pool/plugins/org.eclipse.emf.mapping.ecore2xml.ui_2.8.0.v20160201-0859.jar
$HOME/.p2/pool/plugins/org.eclipse.emf.mapping.ui_2.7.0.v20160201-0859.jar

不幸的是,这个“$HOME/.p2”存储库 "feels" 就像本地 Maven 存储库一样,位于“$HOME/.m2/repository”。有了它,您可以只删除坏文件,下一个 Maven 构建将恢复它们。我尝试删除有问题的坏文件(将它们移到某个地方,以防万一),但这只是将 Eclipse 给我的错误消息从 "bad format" 更改为 "file not found".

我是否必须在某处找到这些特定的 jar,或者是否有更简单的方法让 Eclipse 修复此存储库?

Eike Stepper 在这里回答的问题:https://www.eclipse.org/forums/index.php/mv/msg/1074901/1723920/#msg_1723920

(请不要将学分归功于我,因为 Eike 是作者)