无法启动 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)
无法在 Apache ServiceMix 中启动 OSGI 包
osgi (bndtools) 中的 Restlet 包无法启动。激活程序错误 com/sun/net/httpserver/HttpHandler