迁移自个人百度空间博客,翻译自Nexus和maven相关文档!

 

基于Maven构建OSGI

 

概述:

              OSGI的出现弥补了Java模块化的不足。而模块化和动态化的概念实现了我们梦想中的“即插即用”的系统。本文以Maven为工具构建基于Maven的OSGI程序。这其中包括工程的创建、容器的启动、Bundle的导入和Bundle的创建等等。开发环境使用的是E c lipse 3.6。

 

1、使用Maven创建一个OSGI项目 
              在Eclipse中选择New---Project。弹出如下窗口:


基于Maven构建OSGI
 
 

然后选择Maven---Maven Project。如下图所示:

 



基于Maven构建OSGI

 

点击 ” Next ” ,进行下一步的选择。如下图:

 

 



基于Maven构建OSGI

 

在Filter中选择过滤条件,输入OSGI。如下图:



基于Maven构建OSGI


 

选择OPS4J的pax construct。继续next。

 

输入Group Id 和Artifact Id,点击Finish完成。 (找到工程下父级pom.xml文件,删除 maven-pax-plugin 插件的版本信息,也就是删除<version></version>该元素。可以使用Maven install 进行验证。 )

 

PS: 该系列操作也可以使用下面的命令进行完成:

mvn org.ops4j:maven-pax-plugin: create-project

-DgroupId=com.company.osgi

-DartifactId=test-osgi

-Dversion=0.1

 

2、启动OSGI容器 
             

              选择运行按钮 基于Maven构建OSGI 旁边的三角箭头,选择 基于Maven构建OSGI

 

Run Configuration。如下图:



基于Maven构建OSGI
 
 
选择Maven Build,在此选项上右键点击选择 New。如下图:

 



基于Maven构建OSGI
 
 

在该图示中,可以选择使用Browse Workspace或者 Browse File System来选择项目,在此可以使用Browse Workspace来选择我们新建立的项目。在Goals中输入 install  pax:provision。

如下图:

 


基于Maven构建OSGI


点击Run直接运行。

这时刷新项目会生成一个runner的目录。

 

3、使用Maven导入OSGI  Bundle

 

              根据如上所示步骤,新建立maven 构建命令,命令依次如下:

W ebconsole(这不是命令)

pax:import-bundle

-DgroupId=org.apache.felix -DartifactId=org.apache.felix.webconsole -Dversion=3.1.8

Servlet(这不是命令)

pax:import-bundle

-DgroupId=org.apache.felix -DartifactId=javax.servlet -Dversion=1.0.0

 

Scr(这不是命令)

pax:import-bundle

-DgroupId=org.apache.felix -DartifactId=org.apache.felix.scr -Dversion=1.0.8

 

jetty(这不是命令)

pax:import-bundle

-DgroupId=org.apache.felix -DartifactId=org.apache.felix.http.jetty -Dversion=2.2.0

 

其中scr的最新版本为1.6.0,但是在环境中不能运行成功,所以改为了1.0.8。接下来运行mvn install ,或者使用菜单方式 Run As运行 Maven install。然后运行上图中所配置的

install pax:provision。运行成功后将会显示如下图所类似的信息:

 


基于Maven构建OSGI
 
 

这时在浏览器中输入地址: http://localhost:8080/system/console/ 。用户名和密码均为admin,登陆成功后将会显示,如下页面:

 


基于Maven构建OSGI


该页面显示出了bundle的信息。可以对bundle进行stop、update、uninstall等操作。

4、使用Maven创建OSGI Bundle

 

新建构建命令如下:

pax:create-bundle

-Dpackage=IQueryWord -Dname=QueryWord -Dversion=0.0.1-SNAPSHOT

( -Dpackage 和 -Dname 的内容可以被替换)

 

接着执行 install pax:provision。

 

5、替换OSGI 框架的实现

运行如下命令:

pax:provision – Dframework=kf

或者:

pax:provision – Dframework=equinox

 

 

转载请注明文章出处!!!!!!

 

 

迁移自个人百度空间博客,翻译自Nexus和maven相关文档!

分类:

技术点:

相关文章: