迁移自个人百度空间博客,翻译自Nexus和maven相关文档!
基于Maven构建OSGI
概述:
OSGI的出现弥补了Java模块化的不足。而模块化和动态化的概念实现了我们梦想中的“即插即用”的系统。本文以Maven为工具构建基于Maven的OSGI程序。这其中包括工程的创建、容器的启动、Bundle的导入和Bundle的创建等等。开发环境使用的是E c lipse 3.6。
1、使用Maven创建一个OSGI项目
在Eclipse中选择New---Project。弹出如下窗口:
然后选择Maven---Maven Project。如下图所示:
点击 ” Next ” ,进行下一步的选择。如下图:
在Filter中选择过滤条件,输入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容器
Run Configuration。如下图:
选择Maven Build,在此选项上右键点击选择 New。如下图:
在该图示中,可以选择使用Browse Workspace或者 Browse File System来选择项目,在此可以使用Browse Workspace来选择我们新建立的项目。在Goals中输入 install pax:provision。
如下图:
点击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。运行成功后将会显示如下图所类似的信息:
这时在浏览器中输入地址: http://localhost:8080/system/console/ 。用户名和密码均为admin,登陆成功后将会显示,如下页面:
该页面显示出了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相关文档!