我尝试在OSGi环境(FUSE ESB)中安装捆绑软件,但未设法解决它。该错误信息是:包使用冲突:导入包:de.foo.bar;版本=“0.0.0”
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包的“使用”指令中提到的所有其他包(在正确的版本)。
我检查了这个,并尝试了几个版本的变化(0.0.0和真正的版本号),但无法让它工作。
那么,错误信息是否意味着什么(也许我理解错了)?我需要检查什么?
感谢所有帮助
克劳斯
系统信息:
- FUSE ESB 4.2.0(基于ServiceMix的)
- 使用maven-bundle-plugin 2.1.0生成的OSGi清单头
如果您只是从'Export-packages'声明中删除'uses'和'version'属性,它会起作用吗?据我记得,他们是可选的。 – 2010-08-12 09:56:59
属性是由maven-bundle-plugin添加的(即使我按名称而不是通配符来指定包),我不知道如何避免这种情况。不过,我认为,理解这些信息并配置正确的东西可能是值得的。 – FrVaBe 2010-08-12 10:17:36