Eclipse Marketplace客户端已安装但缺失

时间:2014-08-05 08:35:38

标签: eclipse ide

安装详情

  

包:适用于Web开发人员的Eclipse Java EE IDE。

     

版本: Luna Release(4.4.0)

     

构建ID: 20140612-0600

     

操作系统:Windows 7

问题:

Eclipse市场客户端在Eclipse的下拉帮助菜单中丢失了:

Not appearing in the help menu

虽然,该插件已安装并且是最新的。我可以在已安装的软件部分看到这一点:

Plugin visible in the installed section

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

3 个答案:

答案 0 :(得分:7)

插件可能会在安装时遇到p2未检测到的类加载问题。

在这种情况下,您将看到插件已安装,因为它存在于Eclipse的p2元数据中。但是,OSGi框架可能无法在运行时解析插件/包的依赖关系。这种差异的发生是因为p2引擎和OSGi框架使用不同的方法来解决依赖关系。在存在多个版本的情况下,p2引擎不太准确,并且可以允许您安装无法运行的插件。甚至可以通过安装完全不相关的东西来破坏现有插件,从而带来其他版本的第三方库,如日志记录。通常,OSGi检测到插件/包需要加载同一java包的两个版本。此版本控制冲突称为“使用约束违规”。

Window->Show View->Error log打开“错误日志视图”。在与“org.eclipse.epp.mpc。*”插件相关的标题中查找带有“FrameworkEvent ERROR”的日志。

以下是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"]

答案 1 :(得分:2)

可能右键单击Perspective图标并选择 Reset 将更新Menu以获得新安装的项目。

答案 2 :(得分:2)

重新安装 Oomph设置 - org.eclipse.oomph.setup.feature.group Oomph Setup SDK - org.eclipse.oomph.setup.sdk.feature.group

为我解决问题