无法启动 OSGi 包,缺少 com.ibm.uvm.tools

Posted

技术标签:

【中文标题】无法启动 OSGi 包,缺少 com.ibm.uvm.tools【英文标题】:Cannot start OSGi bundle, missing com.ibm.uvm.tools 【发布时间】:2012-11-15 03:35:24 【问题描述】:

我正在尝试创建一个包含大量依赖项的捆绑包。我收到错误 could not be resolved. Reason: Missing Constraint: Import-Package: com.ibm.uvm.tools,但在 maven 存储库或网络上找不到这个包。通过在 Import-Package 指令中标记这个包(和一堆其他包)为可选,我可以解析包,但如果不满足依赖项,它将无法启动。我可以做些什么来解决这个导入包?

我正在使用 maven-bundle-plugin 生成包。

【问题讨论】:

您要安装什么捆绑软件?当您将包设为可选时,您会遇到什么错误?当我用谷歌搜索“uvm tool”时,谷歌实际上会建议你正在寻找的包,所以我真的很想知道你怎么找不到任何东西。 【参考方案1】:

您已经在类路径中使用几个 jar 构建了您的包。否则,您的包将不会引用名为 com.ibm.uvm.tools 的包中的任何内容。现在您需要查看此 jar 是否支持 OSGi(指定正确的标头和包导出)。也许还存在那个 jar 的“OSGi-fied”版本,例如查看the springsource repository。

查看包名,我假设可能无法找到的专有代码重新包装在任何公共存储库中,然后您可以尝试自己将其包装为一个包,看看at this *** question。

【讨论】:

【参考方案2】:

解决方案是使用 OSGified 版本的 log4j 作为提供的依赖项。我把它作为一个编译的依赖项。 Log4j manifest 提到这个包是一个可选的依赖,所以 maven-bundle-plugin 将它添加到我的包的清单中,但没有使它成为可选的。

【讨论】:

以上是关于无法启动 OSGi 包,缺少 com.ibm.uvm.tools的主要内容,如果未能解决你的问题,请参考以下文章

OSGi 捆绑包未启动:缺少要求 osgi.wiring.package; > &(osgi.wiring.package=org.apache.felix.dm)

OSGI 缺少需求错误

无法在 Apache ServiceMix 中启动 OSGI 包

osgi (bndtools) 中的 Restlet 包无法启动。激活程序错误 com/sun/net/httpserver/HttpHandler

BndTools,如何添加非 OSGi JAR?使用普通 JAR 会破坏整个项目。缺少要求接线包

OSGi:以编程方式决定是不是可以启动捆绑包