【问题标题】:Resolving Plug-In Dependency on org.eclipse.equinox.p2.iu in Eclipse 2021-12解决 Eclipse 2021-12 中对 org.eclipse.equinox.p2.iu 的插件依赖
【发布时间】:2022-07-07 20:50:55
【问题描述】:

我正在尝试使 Eclipse 插件(最初为 Eclipse Neon 和 Java 8 开发)工作,但无法在目标平台中加载。我的系统配置如下:

  • 机器:2021 MacBook Pro (M1 Pro)
  • Java 版本:Java SE 17.0.1(也尝试过 JDK 8 Temurin)
  • Eclipse 2021-12 (4.22.0)(虽然我也尝试在这台机器上安装 Eclipse Neon 并遇到了同样的问题)

当我尝试加载目标平台(包含在帖子底部)时,我收到以下错误:

Problems occurred while resolving the target contents
    Cannot complete the install because one or more required items could not be found.
        Cannot satisfy dependency:
            From: Equinox p2, Provisioning for IDEs. 2.2.201.v20161124-1529 (org.eclipse.equinox.p2.user.ui.feature.group 2.2.201.v20161124-1529)
            To: org.eclipse.equinox.p2.iu; org.eclipse.equinox.p2.core.feature.feature.group [1.3.201.v20161115-1950,1.3.201.v20161115-1950]
        Cannot satisfy dependency:
            From: Eclipse Platform 4.6.2.M20161124-1400 (org.eclipse.platform.ide 4.6.2.M20161124-1400)
            To: org.eclipse.equinox.p2.iu; org.eclipse.equinox.p2.user.ui.feature.group [2.2.201.v20161124-1529,2.2.201.v20161124-1529]
        Missing requirement for filter properties ~= $0: Equinox p2, headless functionalities 1.3.201.v20161115-1950 (org.eclipse.equinox.p2.core.feature.feature.group 1.3.201.v20161115-1950) requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.security.macosx [1.100.200.v20130327-1442,1.100.200.v20130327-1442]' but it could not be found
        Software being installed: Eclipse Platform 4.6.2.M20161124-1400 (org.eclipse.platform.ide 4.6.2.M20161124-1400)

目标平台是:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="visuflow" sequenceNumber="42">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.platform.ide" version="4.6.2.M20161124-1400"/>
<unit id="org.eclipse.pde.feature.group" version="3.12.2.v20161124-1400"/>
<unit id="org.eclipse.pde.source.feature.group" version="3.12.2.v20161124-1400"/>
<unit id="org.eclipse.rcp.feature.group" version="4.6.2.v20161124-1400"/>
<unit id="org.eclipse.rcp.source.feature.group" version="4.6.2.v20161124-1400"/>
<repository location="http://download.eclipse.org/eclipse/updates/4.6"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
<unit id="org.apache.commons.lang.source" version="2.6.0.v201404270220"/>
<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/"/>
</location>
</locations>
<implicitDependencies>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.shell"/>
<plugin id="org.eclipse.core.net"/>
<plugin id="org.eclipse.equinox.console"/>
<plugin id="org.eclipse.ui.ide"/>
<plugin id="org.eclipse.pde.runtime"/>
<plugin id="org.eclipse.equinox.ds"/>
<plugin id="org.eclipse.ui.ide.application"/>
<plugin id="org.apache.felix.gogo.runtime"/>
</implicitDependencies>
    <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Eclipse Temurin 8 [1.8.0_312]"/>
</target>

提前感谢您的帮助。

编辑:

  • @greg-449 正确地指出了冲突的架构。我最初是在 aarch64 上运行的,但是当我下载 x86_64 Eclipse/Java 时,插件解决了。但是,现在我有一个不同的问题,仍然与冲突的架构有关。尝试启动我的插件时:
    /Users/austin/eclipse-workspace/visuflow/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/132/0/.cp/libswt-cocoa-4628.jnilib: dlopen(/Users/austin/eclipse-workspace/visuflow/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/132/0/.cp/libswt-cocoa-4628.jnilib, 0x0001): tried: '/Users/austin/eclipse-workspace/visuflow/.metadata/.plugins/org.eclipse.pde.core/New_configuration/org.eclipse.osgi/132/0/.cp/libswt-cocoa-4628.jnilib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libswt-cocoa-4628.jnilib' (no such file)

【问题讨论】:

  • org.eclipse.equinox.p2.iu 表示 p2 安装程序“安装单元”——插件或功能。缺少的是org.eclipse.equinox.security.macosx 插件。
  • 我注意到您使用的是 M1 Mac - 您使用的是 aarch64 Java / Eclipse 吗?较旧的目标平台将只有 x86_64 版本的缺失插件。
  • @greg-449 你是对的,下载并使用 Eclipse 和 Java 的 x86_64 版本解决了这个问题。但是,现在我遇到了 SWT 问题(请参阅上面的编辑),这似乎也是由架构不匹配引起的。
  • 该消息看起来像是您正在尝试使用 aarch64 Java 运行 x86_64 rcp - Java 和 RCP 必须相同。如果你想使用 aarch64 运行,你需要使用当前的 Eclipse 构建,而不是 4.6,它是 16 个版本的旧版本。

标签: java eclipse plugins


【解决方案1】:

对于任何有类似问题的人:

requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.util 1.0.400'

第一个解决方案: 我建议检查您安装的 Eclipse 版本。我安装了最新的,默认情况下,我从官方 Eclipse 页面获得了“Java Developers 的 Eclipse IDE”。如果您再花 2 分钟,您会发现“面向企业 Java 和 Web 开发人员的 Eclipse IDE”——它更高级,并且看起来某些插件仅适用于此版本。

第二种解决方案: 添加到“可用软件站点”新站点 名称:Eclipse Oxygen.2 网址:http://download.oracle.com/otn_software/oepe/library/eclipse-oxygen.2

我测试了上述解决方案,它们都对我有用。 干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多