我有一个Vaadin应用程序,我正在尝试使用Maven + BND将其构建为一组OSGI捆绑软件。
我无法将捆绑软件部署到Apache Felix,因为某些依赖项无法解决。
Apache Felix抱怨找不到软件包“A”所需的软件包XYZ,尽管此软件包是在同一软件包中定义的!!
我查看了Maven + BND生成的MANIFEST.MF文件,发现该捆绑包中的软件包(XYZ)已添加到“导入”和“导出”部分。我了解为什么要“导出”,但是为什么要“导入”?为什么捆绑软件尝试导入自己的软件包?
我的清单文件
Manifest-Version: 1.0
Export-Package: myexample.admin;uses:="com.vaadin.ui,myexample.webshared,
com.vaadin.terminal,myexample.mvc.view.impl,
myexample.mvc.model,myexample.mvc.renderer.map.impl,
myexample.mvc.renderer,myexample.mvc.model.impl,myexample.util"
Built-By: ask
Tool: Bnd-0.0.384
Bundle-Name: admin
Created-By: 1.6.0_21 (Sun Microsystems Inc.)
Bundle-Version: 0
Build-Jdk: 1.6.0_26
Bnd-LastModified: 1315674240833
Bundle-ManifestVersion: 2
Import-Package: myexample.admin;version="1.0",myexample.mvc.model,
myexample.mvc.model.impl,myexample.mvc.renderer,
myexample.mvc.renderer.map.impl,myexample.mvc.view.impl,
myexample.util,myexample.webshared,com.vaadin.terminal,com.vaadin.ui
Bundle-SymbolicName: admin
Include-Resource: ..\classes
Originally-Created-By: Apache Maven Bundle Plugin
最佳答案
这是正确的行为。在OSGi核心规范的3.5.6节中进行了说明。
关于Felix尚未解决的错误,这必须与其他问题有关。请发布实际的错误消息。