【发布时间】:2009-09-23 04:56:36
【问题描述】:
1) Bundle A 重新导出 com.X 包,它从Bundle C 中获得
2) Bundle B 导出包 com.X
3) 现在bunlde D 依赖于A 和B。
捆绑包 D 将从哪里获取包 com.X?
【问题讨论】:
1) Bundle A 重新导出 com.X 包,它从Bundle C 中获得
2) Bundle B 导出包 com.X
3) 现在bunlde D 依赖于A 和B。
捆绑包 D 将从哪里获取包 com.X?
【问题讨论】:
第一个问题是为什么您有 2 个捆绑包定义了同一个包 - 这称为拆分包,不建议这样做,因为您可能会遇到阴影问题。
使用Import-Package,运行时将选择捆绑 A 或 B 来解决包依赖关系,您无法直接控制它(您可以通过在导出上设置强制属性来执行各种技巧,例如 Eclipse 家伙所做的)。
使用Require-Bundle,您最终会得到一个合并的com.X 包,因此您会看到类型的超集,但我不确定如果您有重叠类型会发生什么。
最简单的事情是首先避免拆分包。
【讨论】: