我嘗試在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