【发布时间】:2011-03-28 20:09:01
【问题描述】:
我尝试在 OSGi 环境 (FUSE ESB) 中安装包,但无法解决。错误信息是:
The bundle could not be resolved. Reason: Package uses conflict: Import-Package: de.foo.bar; version="0.0.0"
我的包导入包de.foo.bar。 导出包 de.foo.bar 的包使用 'uses' 指令执行此操作。
Export-Package = de.foo.bar;uses:="{other packages}";version="2.4.0"
据我所知,我必须确保我的包必须导入 de.foo.bar 包的“uses”指令中提到的所有其他包(在正确的版本中)。
我检查了这个并尝试了几个版本更改(0.0.0 和真实版本号),但无法让它工作。
那么,错误消息的真正含义是什么(也许我理解错了)?我需要检查什么?
感谢您的帮助
克劳斯
系统信息:
- FUSE ESB 4.2.0(基于 servicemix)
- 使用maven-bundle-plugin 2.1.0 生成OSGi MANIFEST 标头
【问题讨论】:
-
如果您只从
Export-packages声明中删除uses和version属性,它是否有效?据我记得,它们是可选的。 -
属性是由 maven-bundle-plugin 添加的(即使我按名称而不是通配符指定捆绑包),我不知道如何避免这种情况。尽管如此,我认为理解该消息并正确配置内容可能是值得的。