我NoClassDefFoundError
在运行时得到一个,我认为该"uses"
指令会避免这种情况,因为我认为它创建了传递性(如果我错了,请纠正我)。这是我的配置:
Bundle 1
Export-package A
Bundle 2
Export-package B, uses "A"
Import-package A
Bundle 3
Import-package B
现在,当 Bundle 3 调用B中的类,而后者又调用A中的类时,就会发生异常。基于控制台,我可以看到BundleClassLoader
在捆绑包 3 中查找类(换句话说,在其本身),但在捆绑包 1 中找不到它。如果我强制 BND 在 Bundle 3 中导入 A 一切正常,但它看起来太费力了。我觉得我错过了一些东西。Equinox 不应该使用清单中的信息来设置捆绑类路径吗?或者在最坏的情况下,BND 不应该检测 3 对 1 的依赖并在 3 的清单中导入包 A 吗?
我所有的捆绑包都是active
并且我没有uses
违反约束