OSGi允许通过Import-Package连接确定依赖关系,它只连接单个包(从任何包中导出),并Require-Bundle连接到特定命名包的导出.
在构建绿地OSGi应用程序时,我应该使用哪种方法来表示依赖关系?大多数bundle都是内部的,但是对外部(开源)bundle会有一些依赖.
Thi*_*ilo 50
我相信它Require-Bundle是一个Eclipse的东西(现在已经在OSGi规范中使它适应Eclipse)."纯粹的"OSGi方式是使用Import-Package,因为它专门将包与提供它的包解耦.您应该声明依赖于您需要的功能(特定软件包的特定版本提供的Java API)而不是该功能的来源(这对您来说无关紧要).这使捆绑的组成更加灵活.
JavaScript类比:这类似于检测Web浏览器是否支持某个API,而不是根据用户代理字符串说明它是什么类型的浏览器.
OSGi联盟的Peter Kriens在OSGi博客上有更多关于此的内容.
可能是您需要使用的唯一情况Require-Bundle是,如果您有拆分包,那就是分布在多个包中的包.当然,非常不鼓励拆分包.
tek*_*ara 14
支持Import-Package over Require-Bundle.
需要束:
进口包装:
我相信Import-Package为您提供更宽松的耦合,应该是首选.我在声明对我不拥有的包的依赖时使用它,例如slf4j,我可以按照自己的意愿交换实现.当依赖是我可以控制的东西时,我使用Require-Bundle,例如我自己的bundle,因为无论如何任何重要的改变都会通过我自己.
| 归档时间: |
|
| 查看次数: |
25446 次 |
| 最近记录: |