OSGi与Maven、Eclipse PlugIn的区别

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

时间: 2024-11-10 00:01:23

OSGi与Maven、Eclipse PlugIn的区别的相关文章

[Maven] - Eclipse "maven compiler plugin" 冲突解决

刚安装最新的Maven 3.2.5,在eclipse中使用maven的Run As->Maven Install,总会提示: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project testweb1: Compilation failure 解决办法: 在这里添加plugin: maven compiler plugin 如图: 在

[转] 关于maven tomcat plugin 调试源码的解决方案

一. 解决关联第三方jar源码 在pom文件中加入: Xml代码   <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>2.9</version> <configuration> <

解决Maven报Plugin execution not covered by lifecycle configuration

环境 eclipse 4.3.0 maven 3.0.4 m2e 1.4.0 出现场景 以前的老项目,在我的环境(我的环境较新)下,别人老环境不报错. 错误示例 一个错误示例,子项目引用了父项目,子项目parent标签处报错如下: Multiple annotations found at this line: - maven-enforcer-plugin (goal "enforce") is ignored by m2e. - Plugin execution not cover

maven jetty plugin

前言: 在 maven 下测试调试时,相比较 Tomcat .Jboss .Jetty 而言,个人更倾向于使用 Jetty Plugin. 怎么说呢?使用 Jetty Plugin 的时候最爽的是不用你敲打包.部署,然后再启动服务器的指令,只需敲一句:mvn jetty:run 或直接点 eclipse 上的 run 按钮就完事了.而且更爽的是,你修改资源文件,Jetty 能自动扫描到并及时给予反馈进行重加载, 这对修改java文件很有帮助,不用每次修改java文件都要重启服务器,省掉了不少没必

学习 Maven之Maven Enforcer plugin

1.Maven Enforcer plugin是什么鬼? 在说这个插件是什么前我们先思考这么一个问题:当我们开发人员进入项目组进行开发前,要准备开发环境,而领导总是会强调工具的统一,编译环境的统一.比如要求所有开发人员使用JDK1.8进行开发. 开发人员接下来就是去下载指定版本的JDK,然后开始开发.但是如果开发人员的机器配置比较多,有好几个版本的JDK,而他虽然下载了JDK1.8,但是忘记配置环境变量,很有可能他用了JDK1.6进行的编译. 问题有了,该如何解决? Maven Enforcer

gradle/maven/eclipse工程相互转化

原文:? gradle/maven/eclipse工程相互转化 gradle/maven/eclipse工程相互转化:前提安装好相应的工具和插件.1.Maven->eclipse mvn eclipse:eclipse ? 2.eclipse->maven 安装好maven插件后,在eclipse工程右键项目:转换为maven工程即可. ? 3.gradle->eclipse编辑build.gradle文件,在文件最前面增加一行:apply plugin: 'eclipse' gradl

最新版本Maven + Eclipse IDE for Java EE Developers (Kepler)无法成功部署

最终改用Maven 1.10及以下版本,问题解决.(可能与Maven版本无关) 遇到问题之一: 无法连接maven repository:Could not transfer artifact XXXXX from/to central (http://repo.maven.apache.org/maven2)解决方法:在Maven安装目录,Conf\Setting.xml中设置正确的代理.格式示例: <proxy> <id>optional</id> <acti

question --&gt; maven assembly plugin 修改文件默认权限

使用maven assembly plugin插件添加执行脚本时,发现默认权限为644,还需要手动添加执行权限.这很麻烦,于是查看文档 官方文档 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_fileSet fileMode String Similar to a UNIX permission, sets the file mode of the files included. THIS IS

[Maven]Eclipse插件之Maven配置及问题解析.

前言:今天在自己环境装了Maven环境, 并且安装了Eclipse插件, 在查找插件过程中确实遇到一些问题, 好不容易找到一个  却又有问题.装好了插件之后, 用Eclipse创建Maven项目却出现两个问题, 在这里总结一些, 方便其他朋友更好的解决问题. 一, Maven环境的安装在这里就不做过多的赘述, 首先大家 需要去Maven官网下载 Maven包, 然后配置Maven环境.Maven环境变量配置: http://jingyan.baidu.com/article/cb5d61050b