在eclipse3.3上进行OSGI基础平台环境的搭建

来源:百度文库 编辑:神马文学网 时间:2024/10/04 03:47:06

在eclipse3.3上进行OSGI基础平台环境的搭建

关键字: osgi1. dependecies repo的建立。
我们需要在eclipse上搭建一个OSGI的集成开发环境,实际上就是构建一个eclipse的目标平台(target),这个目标平台里面包括了一些我们要勇于OSGI开发的所必须用到的插件(Bundle),此外,剔除掉了一些我们不需要的插件来达到一个最干净,精简的OSGI开发环境的搭建,这样就有利于我们在eclipse上执行(run)或者调试(debug)一个方便的统一的OSGI开发环境来进行我们的OSGI相关开发工作。要完成这个目的,当然第一步工作是按照我们自己的需要去定制一个插件集,然后在利用eclipse的构建目标平台的功能(targetdefinition)去关联到我们定义的这个插件集上,来完成一个自定义的OSGI开发平台的构建。
这里我们还是利用一个名叫Maven Dependency Plugin的maven插件来实施我们的插件集合的构建。关于这个插件的配置方法,相信官方网站上已经做了非常详尽的说明,这里由于我们只需要这个插件的Copying Project Dependencies功能,所以我们这里只简要的讲解一下这个功能的配置方法。
利用如下的一个模板配置你可以用来将配置在你的pom文件中的那些dependencies以及这些dependencies所依赖的dependencies拷贝到指定的目录:

xml 代码 
  1.   
  2.   [...]  
  3.     
  4.      
  5.        
  6.         org.apache.maven.plugins  
  7.         maven-dependency-plugin  
  8.           
  9.             
  10.             copy-dependencies  
  11.             package  
  12.               
  13.               copy-dependencies  
  14.               
  15.               
  16.               ${project.build.directory}/alternateLocation  
  17.               false  
  18.               false  
  19.               true  
  20.               
  21.             
  22.           
  23.         
  24.       
  25.     
  26.   [...]  
  27.   


当然你也可以通过设置excludeTransitive属性为true来显示的将pom中配置的dependencies所依赖的dependencies进行拷贝。
xml 代码 
  1. [...]  
  2.   
  3.    
  4.      
  5.       org.apache.maven.plugins  
  6.       maven-dependency-plugin  
  7.         
  8.           
  9.           copy-dependencies  
  10.           package  
  11.             
  12.             copy-dependencies  
  13.             
  14.             
  15.             ${project.build.directory}/alternateLocation  
  16.             false  
  17.             true  
  18.             true  
  19.             
  20.           
  21.         
  22.       
  23.     
  24.   
  25. [...]  
  26. project>  

实际中,我们会一般的在pom中设置好我们这个OSGI环境所需要的一些bundles(插件),然后设置好outputDirectory(输出目录)假设是${project.build.directory},这个就是指代的这个工程下的target目录,然后用maven的命令:maven package来进行构建。构建完毕后一个符合我们自己需要的OSGI taget platform就设置好了。当然在一些最基础的OSGI核心bundle(比如org.eclipse.osgi)你就没必要再去以这种方式构建到target下了,因为你下下来一个eclipse的IDE后,它里面就包含了一些基本的OSGI核心包(eclipse就是一个OSGI产品),至于在POM中配置dependecies的方式来配置那些需要的bundles,那这些bundle来至哪里呢,这个可以参考我以前的博客中写过得利用pax来进行这项OSGI bundle的构建工作。

剩下来的步骤就是要把我们eclipse IDE的工作环境设到我们之前做好的这个OSGI bundles集合上来了。

首先在我们已经构建dependences集合的工程里面创建一个Target definition



先选择New一个Target definition

父文件夹选择我们的放了dependences的工程目录,设置好target配置文件的文件名后,点击完成,这样一个target definition就建好了。然后对其做些配置


如果你已经有一个基础的eclipse环境(实际上就是个基础的OSGI环境),那么就在Target Location中将这个Location设置进来,此外再将我们刚才构建的我们自需要的OSGI环境设置在Additional Locations里面,最后保存下这个文件,再点击右上角的Set as Target Platform,那么我们的eclipse就可以立刻切换到我们自定义的OSGI开发环境中去了。



总结:利用maven插件以及eclipse的target platform的结合,来构建一个我们自需要的OSGI环境,然后实现IDE的target platform在这个target上的自由切换,有利于统一管理我们的OSGI开发平台环境,对开发中要用到的bundles进行了有效的积累和管理。