gpt4 book ai didi

dependencies - Tycho 下载依赖但未能解决它

转载 作者:行者123 更新时间:2023-12-04 04:39:00 40 4
gpt4 key购买 nike

我在使用 Tycho 0.15.0 时遇到了一个奇怪的问题。我的 MANIFEST.MF 中有 8 个依赖项,但 Tycho 无法解析其中一个。输出如下所示:

[INFO] 1 operation remaining.
[INFO] Fetching org.eclipse.xtext.logging_1.2.15.v201206120633.jar (4kB of 10.12kB at 0B/s) from http://my.server.com/p2-3.7.2/plugins/
[INFO] Resolving class path of MavenProject: <...my project ...> @ <...path to my project...>/pom.xml
[ERROR] Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle <...my project...> cannot be resolved
[ERROR] Resolution errors:
[ERROR] Bundle <...my project...> - Missing Constraint: Require-Bundle: org.eclipse.xtext.logging; bundle-version="1.2.15"
[ERROR] -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle <...my project...> cannot be resolved
Resolution errors:
Bundle <...my project...> - Missing Constraint: Require-Bundle: org.eclipse.xtext.logging; bundle-version="1.2.15"

我所知道的:

  1. jar org.eclipse.xtext.logging_1.2.15.v201206120633.jar 存在
  2. jar 没有损坏
  3. Tycho 可以从我的 p2 服务器下载它(我有 ~/.m2/repository/p2/osgi/bundle/org.eclipse.xtext.logging/1.2.15.v201206120633/org.eclipse.xtext。 logging-1.2.15.v201206120633.jar 在我的电脑上)
  4. MANIFEST.MF 看起来正确:

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.8.2
    Bundle-Vendor: %providerName
    Bundle-Localization: fragment
    Fragment-Host: org.apache.log4j;bundle-version="[1.2.15,1.2.16)"
    Bundle-RequiredExecutionEnvironment: J2SE-1.5
    Bundle-Name: %pluginName
    Bundle-SymbolicName: org.eclipse.xtext.logging;singleton:=true
    Created-By: 1.5.0_22-b03 (Sun Microsystems Inc.)
    Bundle-Version: 1.2.15.v201206120633
    Bundle-ManifestVersion: 2
    Import-Package: org.eclipse.core.runtime,org.osgi.framework;version="1
    .5.0"
  5. Tycho 0.16.0 也有同样的问题。

有什么想法吗?

最佳答案

您看到此行为的原因如下:

  • org.eclipse.xtext.logging 是一个片段,而不是一个独立的包(你可以看到,因为它在 MANIFEST 中有 Fragment-Host。 MF 定义另一个包,这个包是其中的一个片段)。
  • 片段在 p2 中的编码方式,片段的 Require-Bundle 可以在 p2 中解析。基于 p2 的依赖项解析确定将目标平台的哪些工件下载到本地 Maven 存储库。
  • 片段的 Require-Bundle 不会在 OSGi 服务器中解析。为了计算类路径(因此控制台输出 Resolving class path),Tycho 使用 Equinox 解析器。该解析器正确检测到 Require-Bundle to fragments is invalid .

关于dependencies - Tycho 下载依赖但未能解决它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489641/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com