Eclipse更新后丢失的可用软件站点列表

ste*_*nci 19 eclipse

单击"检查更新",安装一些更新并单击"确定"以重新启动Eclipse后,"安装"窗口中的可用软件站点列表将消失.

有可能得到它吗?

如果没有,我该如何重建它以便将来更新我的插件?

我在Windows 7中使用Eclipse 4.3.2.

Gee*_*esz 13

在一组自动更新后,我在Win7-64bit上遇到了同样的问题."可用软件站点"的所有设置都已丢失.数据丢失后我的eclipse版本是luna 4.4.2.(现在不要使用版本号,我已经安装了eclipse-cpp-luna-SR1a-win32-x86_64_2014.zip).

我设置此站点以获取"/帮助/安装新软件...."对话框再次工作:

Eclipse-Project-Repository - http://download.eclipse.org/eclipse/updates/4.4

要获取另一个eclipse版本的存储库,请查看此处.按照eclipse版本的链接,在那里搜索"Eclipse p2 Repository".


NoD*_*und 7

对于那些有兴趣恢复更新站点的人,这里有一种方法可以完成这项工作,可能适合您,也可能不适合您:

  • 找到该${ECLIPSE_HOME}\p2\org.eclipse.equinox.p2.engine\profileRegistry\<profile>\.data\.settings\org.eclipse.equinox.p2.artifact.repository.prefs文件。这<profile>取决于安装的 Eclipse,对我来说是epp.package.rcp.profile.
  • 查找所有以/uri=:结尾的键,它们将包含原始 URI。您可以使用 grep:(grep --color -Po '/uri=.+' org.eclipse.equinox.p2.artifact.repository.prefs您可能想要过滤file:/URI)。
  • 删除/uri并取消转义属性以重新获得有效的 URI:sed对此有好处。例如:sed -E -e 's@^/uri=@@g' -e 's@\\@@g'
  • 申请一个 sort --unique

现在,您将拥有此命令行和结果:

$ grep --color -Po '/uri=http.+' org.eclipse.equinox.p2.artifact.repository.prefs | sed -E -e 's@^/uri=@@g' -e 's@\\@@g' | sort
https://spotbugs.github.io/eclipse/
http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest/
http://download.eclipse.org/eclipse/updates/4.7
http://download.eclipse.org/eclipse/updates/4.7/R-4.7-201706120950
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1-201709061700
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1a-201710090410
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.2-201711300510
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.3-201803010715
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.3a-201803300640
Run Code Online (Sandbox Code Playgroud)

你快到了!

如果您查看上面的示例,您可以看到同一端点 ( /eclipse/updates/4.7) 的多个重复 URI,它是 P2 复合存储库:您可以将其添加到 sed 命令以删除以下部分:-e 's@/(R-[^/]+|)20[0-9]{10}@@g'.

这样更好:

$ grep --color -Po '/uri=http.+' org.eclipse.equinox.p2.artifact.repository.prefs | sed -E -e 's@^/uri=@@g' -e 's@\\@@g' -e 's@/(R-[^/]+|)20[0-9]{10}@@g' | sort --unique
http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest/
http://download.eclipse.org/eclipse/updates/4.7
http://download.eclipse.org/efxclipse/updates-released/3.0.0/site
http://download.eclipse.org/releases/oxygen
http://download.eclipse.org/technology/epp/packages/oxygen/
http://eclipse.pitest.org/release/
http://netceteragroup.github.io/quickrex/updatesite
http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-tycho/0.8.0/N/0.8.0.201409231215/
http://ucdetector.sourceforge.net/update/
Run Code Online (Sandbox Code Playgroud)

现在我们将把它转换成一个要导入的 XML 文件:在可用软件站点中,您可以导出一个bookmarks.xml文件,其中包含一个条目:

<?xml version="1.0" encoding="UTF-8"?>
<bookmarks>
   <site url="http://download.eclipse.org/eclipse/updates/4.7" selected="true" name=""/>
</bookmarks>
Run Code Online (Sandbox Code Playgroud)

由于您可能不关心nameselected(Eclipse 也可能使用更新站点元数据更新这些),您可以使用内置或sed再次:

$ grep --color -Po '/uri=http.+' org.eclipse.equinox.p2.artifact.repository.prefs.old | \
  sed -E -e 's@^/uri=@@g' -e 's@\\@@g' -e 's@/(R-[^/]+|)20[0-9]{10}@@g' | \
  sort --unique | \
  while read url; do echo "<site url=\"${url}\" />"; done > bookmarks.xml
Run Code Online (Sandbox Code Playgroud)

您现在可以bookmarks.xml进行编辑:只需添加<?xml version="1.0" encoding="UTF-8"?> <bookmarks></bookmarks>,然后将其导入到可用软件套件中

剩下的就是通过选择它们并单击启用启用所有站点。完成后,尝试像往常一样更新 Eclipse,这应该可以完成工作!

您可能想要:

  • 删除任何无效条目或至少禁用它们
  • 将您的内容保存bookmarks.xml到存储库或“某处”。
  • bookmarks.xml再次导出,现在使用正确的名称。

祝你好运!

并且……提出这个错误报告:https : //bugs.eclipse.org/bugs/show_bug.cgi?id=502524


小智 -2

尝试以管理员身份运行 Eclipse。这样“检查更新”就可以工作了。