带有ExportPackage的java Eclipse OSGi片段
我有两个bundle,其中一个是两个片段的主机bundle,这个bundle/片段之间有以下依赖关系
- 捆绑包A(导入B.B包,导入B1.B1包;导出A.A包)
- 主机捆绑包B(导出B.B包)
- 片段B1(出口B1.B1包装)
- 片段B2(导入A.A包)
在eclipse中(我使用了oxygen,但在neon3上出现了相同的错误),从A导入B1时出现了一个错误。无法解析数据包。我读到使用行Eclipse-ExtensibleAPI: true
(Eclipse Help Page)解决了这个问题,它告诉PDE允许片段导出额外的包(在运行时总是允许片段这样做,设置只是PDE的一个信息)
但在使用此设置后,eclipse抱怨我的依赖项中有一个循环在运行时不存在,因为片段B2依赖于包a
处理这些问题的正确方法是什么
# 1 楼答案
从OSGi的角度来看,正确的做法实际上是完全分离API类型(理想情况下是分离成单独的捆绑包),并使用OSGi服务注册表进行相互通信。这确保了包依赖关系图中没有循环,并允许您在知道API没有更改的情况下轻松发布更新。声明性服务提供了一个简单的、基于注释的注入模型,PDE可以为您处理该模型
具有以下特性的模型:
也许对你更有用