我在 osgi 包 Bundle1
和另一个类中有一个类 org.foo.Customer
org.foo.Subscriber
在同一 osgi 环境中的另一个 osgi 包 Bundle2
中。 Bundle1 导出包 org.foo 。
Bundle1
是否可以import org.foo
包Bundle2
。 Bundle1
的 list 文件中的 export 和 import 指定了同一个包,运行时会不会有冲突?
最佳答案
拆分包为strongly discouraged在 OSGi 中。如果您拥有这些 bundle ,您应该重命名一个或两个包,或者将拆分包合并为一个 bundle 。
Bundle2 可以导入拆分包,但是 Bundle2 的类加载器只能看到 Bundle1 中的类,而看不到 Bundle2 内部的类。
您可以将其中一个 bundle 设为 fragment另一个,其效果是它们将使用相同的类加载器。这只需要更改片段包的 list ,如果您出于某种原因无法加入包或更改包名称,这可能是一个选项。
关于java - 从 osgi 包中导出和导入相同的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326136/