Eclipse Marketplace客户端已安装但丢失。

9

安装细节:

软件包: Eclipse Java EE IDE for Web Developers.

版本: Luna Release (4.4.0)

构建编号: 20140612-0600

操作系统: Windows 7

问题:

Eclipse的下拉帮助菜单中缺少Eclipse市场客户端:

Not appearing in the help menu

虽然插件已安装且已更新,但我可以在已安装软件部分看到:

Plugin visible in the installed section

我已尝试重新安装插件并运行-clean,但没有改变,有什么想法吗?

3个回答

8
插件可能存在类加载问题,这些问题在p2安装插件时未被检测到。在这种情况下,您会看到插件已安装,因为它存在于Eclipse的p2元数据中。然而,在运行时,OSGi框架可能无法解析插件/捆绑包的依赖项。这样的差异是由于p2引擎和OSGi框架使用不同的方式来解决依赖关系。在存在多个版本的情况下,p2引擎的准确性较低,可以允许您安装无法运行的插件。甚至可能通过安装与日志记录等第三方库的其他版本完全无关的内容来破坏现有的插件。通常,OSGi检测到插件/捆绑包需要加载相同java包的两个版本。这种版本冲突称为“使用约束违规”。
从“Window->Show View->Error log”中打开“错误日志视图”。查找标题中带有“FrameworkEvent ERROR”的与“org.eclipse.epp.mpc.*”插件相关的日志。
以下是一个版本冲突的示例,导致org.eclipse.epp.mpc.ui需要同时加载org.apache.commons.logging包的两个版本。我通过从“plugins”目录中删除jcl.over.slf4j jar来解决了这个问题。这会让Eclipse/p2认为已删除的jar仍然已安装,因为p2在其元数据中记录了有关它的信息。实际上,在运行时,我们只加载一个版本的包 - 由org.apache.commons.logging插件导出的版本。
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.epp.mpc.ui [334]
  Unresolved requirement: Require-Bundle: org.eclipse.epp.mpc.core; bundle-version="1.3.0"
    -> Bundle-SymbolicName: org.eclipse.epp.mpc.core; bundle-version="1.3.1.v20140820-1706"
       org.eclipse.epp.mpc.core [332]
         No resolution report for the bundle.  Bundle was not resolved because of a uses contraint violation.
  org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.epp.mpc.core [osgi.identity; osgi.identity="org.eclipse.epp.mpc.core"; type="osgi.bundle"; version:Version="1.3.1.v20140820-1706"] because it is exposed to package 'org.apache.commons.logging' from resources org.apache.commons.logging [osgi.identity; osgi.identity="org.apache.commons.logging"; type="osgi.bundle"; version:Version="1.0.4.v201101211617"] and jcl.over.slf4j [osgi.identity; osgi.identity="jcl.over.slf4j"; type="osgi.bundle"; version:Version="1.7.2"] via two dependency chains.

Chain 1:
  org.eclipse.epp.mpc.core [osgi.identity; osgi.identity="org.eclipse.epp.mpc.core"; type="osgi.bundle"; version:Version="1.3.1.v20140820-1706"]
    require: (&(osgi.wiring.bundle=org.apache.commons.logging)(bundle-version>=1.0.4))
     |
    provide: osgi.wiring.bundle: org.apache.commons.logging
  org.apache.commons.logging [osgi.identity; osgi.identity="org.apache.commons.logging"; type="osgi.bundle"; version:Version="1.0.4.v201101211617"]

Chain 2:
  org.eclipse.epp.mpc.core [osgi.identity; osgi.identity="org.eclipse.epp.mpc.core"; type="osgi.bundle"; version:Version="1.3.1.v20140820-1706"]
    import: (&(osgi.wiring.package=org.apache.http.impl.client)(version>=4.1.0))
     |
    export: osgi.wiring.package=org.apache.http.impl.client; uses:=org.apache.commons.logging
  org.apache.httpcomponents.httpclient [osgi.identity; osgi.identity="org.apache.httpcomponents.httpclient"; type="osgi.bundle"; version:Version="4.2.6.v201311072007"]
    import: (&(osgi.wiring.package=org.apache.commons.logging)(version>=1.1.1))
     |
    export: osgi.wiring.package: org.apache.commons.logging
  jcl.over.slf4j [osgi.identity; osgi.identity="jcl.over.slf4j"; type="osgi.bundle"; version:Version="1.7.2"]

2
可能右击视图图标并选择重置,将会更新菜单以包含新安装的项目。

2
重新安装Oomph设置 - org.eclipse.oomph.setup.feature.group Oomph设置SDK - org.eclipse.oomph.setup.sdk.feature.group 帮我解决这个问题。

请问您是如何重新安装的?我遇到了同样的问题。 - Ramesh Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接