我遇到的问题是,我的一个捆绑包正在通过另一个捆绑包加载,即使这两个捆绑包之间没有任何直接依赖关系。这是场景。
我有3个捆绑包。捆绑A,B& C.工艺流程是A-> B-> C.因此,A& A之间没有依赖关系。 C.
当我部署这3个时,由于某种原因,捆绑包C通过捆绑包A加载。我使用Jboss Fuse并通过karaf控制台,当我在捆绑包A上执行dev:show-tree时,它显示捆绑C连接到捆绑A。
如果我删除了捆绑包A,捆绑包C会自行加载,我也不会收到任何错误。
我已经检查了两个A&的features.xml文件和pom。 C看他们是否有任何依赖,但找不到任何东西。
有没有人对我可以尝试的其他方面有什么想法,或者有什么我想念的东西?
答案 0 :(得分:0)
也许您在捆绑包A中有一个可选的Import-Package,它由捆绑包C导出。查看包:exports和bundle:headers。
答案 1 :(得分:0)
看起来像Transitive依赖的纯粹案例。来自OSGI的行动书" 2.5.3代码可视性"部分,这里是传递依赖的定义。 "当捆绑包A依赖于包时,会发生传递依赖性 从捆绑包B和捆绑包B依次取决于捆绑包C的包。使用 bundle A,你需要解决bundle B和bundle C的依赖关系。"
您的捆绑包A可能会暴露出比捆绑C使用的捆绑包更高版本的包裹。
此致 戈帕尔