OSGi与Maven、Eclipse PlugIn的区别

雨燕双飞 提交于 2020-03-18 17:11:11

某厂面试归来,发现自己落伍了!>>>

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!