OSGI MANIFEST中export-package中的uses属性

本文探讨了OSGi框架中Bundle之间的依赖关系,特别是export-package与import-package指令的uses属性如何实现依赖包的传递性引用。通过具体例子说明了如何确保不同Bundle间正确共享和使用相同的依赖包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找了很多都是直接介绍export-package和import-package的,网上有很多。这里单说export中的uses:


以下内容引自:http://blog.youkuaiyun.com/flyingamy/article/details/5623500

--引用开始

uses指令用在Export-Package属性中,但是要配合Import-Package属性一起来使用才有意义.例如bundleA 的manifest文件包含如下片段:

Export-Package: org.osgi.service.http;uses:="javax.servlet"; version="1.0.0"
Import-Package: javax.servlet; version="2.3.0"

上面的例子说明bundleA共享了org.osgi.service.http这个包给其他包来使用,版本从1.0.0到无限大,使用bundleA(也就是引入bundleA)的其他包如果要引入javax.servlet这个包,那么要引入的javax.servlet包就是bundleA中引入的这个包. 这种引入具有传递性.

--引用结束


上文中说到,这种引入具有传递性。就是说,B引用了A,C引用了B和A,但C引用的A和B引用的A是同一个包。

那这种引用的传递是指在代码中不必要写出

 import javax.servlet;

还是说程序中不会引用两个包到buildpath中?现在不是很了解。正在研究。

希望有知道的大牛不吝赐教。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值