osgi 的框架的 apache felix equinox
osgi的bundle 的概念maven 的 module 的 Eclipse 的 PlugIn 的区别。。。。
OSGi与Maven
Maven也具有模块化系统的特征;但是它只是一个编译时工具,而不是运行时框架。Maven并不是OSGi的竞争者,而是OSGi的一个补充。
通过在pom.xml中指定所依赖jar包的名称、版本号,Maven就能在编译时自动下载正确的jar文件,并部署到classpath中。
然而Maven并没有解决JAR文件的缺点:
同样使用全局的classpath;
同样不能做到包级别的信息隐藏;
而且pom.xml的格式与OSGi格式并不兼容。所以,如果用Maven编译OSGi系统,通常需要定义两遍metadata:
在pom.xml中定义Maven的metadata
在MANIFEST.MF中定义OSGi的metadata
OSGi与Eclipse PlugIn
Eclipse平台是基于Equinox的,而Equinox就是OSGi的实现之一。
而在Eclipse3.0之前,却使用的是另一套模块系统;Eclipse PlugIn是指包含plugin.xml的文件夹;plugin.xml中定义的metadata和OSGi的MANIFEST.MF非常类似:包含plugin的name、vendor、version、导出包、required plugin。
关键的区别在于:Eclipse PlugIn定义的依赖并不是包级别,而是整个plugin。
Eclipse Plugin的最大缺陷是,不能动弹地安装、更新、卸载。
来自:http://www.myexception.cn/operating-system/1405867.html