1. dependecies repo的建立。
我们需要在eclipse上搭建一个OSGI的集成开发环境,实际上就是构建一个eclipse的目标平台(target),这个目标平台里面包括了一些我们要勇于OSGI开发的所必须用到的插件(Bundle),此外,剔除掉了一些我们不需要的插件来达到一个最干净,精简的OSGI开发环境的搭建,这样就有利于我们在eclipse上执行(run)或者调试(debug)一个方便的统一的OSGI开发环境来进行我们的OSGI相关开发工作。要完成这个目的,当然第一步工作是按照我们自己的需要去定制一个插件集,然后在利用eclipse的构建目标平台的功能(target definition)去关联到我们定义的这个插件集上,来完成一个自定义的OSGI开发平台的构建。
这里我们还是利用一个名叫
Maven Dependency Plugin的maven插件来实施我们的插件集合的构建。关于这个插件的配置方法,相信官方网站上已经做了非常详尽的说明,这里由于我们只需要这个插件的
Copying Project Dependencies功能,所以我们这里只简要的讲解一下这个功能的配置方法。
利用如下的一个模板配置你可以用来将配置在你的pom文件中的那些dependencies以及这些dependencies所依赖的dependencies拷贝到指定的目录:
xml 代码
- <project>
- [...]
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>false</overWriteSnapshots>
- <overWriteIfNewer>true</overWriteIfNewer>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- [...]
- </project>
当然你也可以通过设置excludeTransitive属性为true来显示的将pom中配置的dependencies所依赖的dependencies进行拷贝。
xml 代码
- [...]
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <excludeTransitive>true</excludeTransitive>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- [...]
- 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的构建工作。
<o:p> </o:p>
剩下来的步骤就是要把我们eclipse IDE的工作环境设到我们之前做好的这个OSGI bundles集合上来了。
首先在我们已经构建dependences集合的工程里面创建一个Target definition
先选择New一个Target definition
<o:p> </o:p>
父文件夹选择我们的放了dependences的工程目录,设置好target配置文件的文件名后,点击完成,这样一个target definition就建好了。然后对其做些配置
<o:p>
</o:p>
如果你已经有一个基础的eclipse环境(实际上就是个基础的OSGI环境),那么就在Target Location中将这个Location设置进来,此外再将我们刚才构建的我们自需要的OSGI环境设置在Additional Locations里面,最后保存下这个文件,再点击右上角的Set as Target Platform,那么我们的eclipse就可以立刻切换到我们自定义的OSGI开发环境中去了。
<o:p> </o:p>
总结:利用maven插件以及eclipse的target platform的结合,来构建一个我们自需要的OSGI环境,然后实现IDE的target platform在这个target上的自由切换,有利于统一管理我们的OSGI开发平台环境,对开发中要用到的bundles进行了有效的积累和管理。
分享到:
- 2007-10-21 20:56
- 浏览 5347
- 评论(3)
- 论坛回复 / 浏览 (3 / 5125)
- 查看更多
相关推荐
《Eclipse RCP与Spring OSGi:技术详解与最佳实践》共分3个部分:基础篇(第1-5章)详细介绍了与Eclipse RCP相关的一系列核心概念、Eclipse RCP开发环境的搭建,以及SWT、JFace、Forms、Nebula和WindowBuilder等...
在"OSGI.rar_OSGI eclipse_eclipse osgi_java OSGI_osgi"这个压缩包中,我们可以找到"OSGI实战.pdf",这很可能是关于如何在Eclipse环境下使用OSGI进行实际开发的详细指南。该书可能会涵盖以下关键知识点: 1. **...
在构建JAVA ME开发环境时,使用Eclipse3.3、Eclipseme1.7.6以及wtk2.5.2是一种经典的配置方案,尤其...通过以上步骤,你将能够在Eclipse 3.3环境中成功搭建并配置JAVA ME开发环境,开始进行JAVA ME应用程序的开发工作。
在实际开发中,开发者会根据需求选择和配置这些模块,创建自己的OSGI bundle,并在Eclipse环境中进行部署和调试。理解每个模块的功能和它们之间的交互关系是成功开发OSGI插件的关键。同时,掌握OSGI的生命周期管理和...
在这个“osgi基础demo-搭建servlet”项目中,我们将探讨如何在OSGi环境中创建并运行一个简单的Servlet应用程序。 首先,我们需要理解OSGi的核心概念。OSGi基于服务导向架构,每个模块称为一个Bundle,每个Bundle...
Eclipse IDE本身就是一个基于OSGi的平台,各个插件作为独立的bundle进行管理。此外,Spring Dynamic Modules(Spring DM)和Apache Felix等开源项目也使用OSGi来构建可扩展的系统。 六、挑战与优势 尽管OSGi提供了...
Eclipse是一个广泛使用的开源集成开发环境(IDE),它支持OSGi框架,使开发者能够在Eclipse平台上构建模块化的应用程序。本文将通过一个实例,详细讲解如何使用Eclipse进行OSGi开发,包括SpringDM(Spring Dynamic ...
Eclipse RCP是一个用于构建桌面应用程序的框架,而Spring OSGi则提供了在OSGi环境中管理和部署Spring Bean的能力。 首先,我们需要理解Eclipse RCP。它是基于Java的,允许开发者创建可扩展、模块化的桌面应用。它...
综上所述,Eclipse 3.0 通过引入 OSGi 技术实现了从单一工具平台到富客户端平台的重大转型。这一转型不仅解决了原有架构中的不足之处,还带来了诸多新特性和性能上的提升,使 Eclipse 成为一个更加成熟和全面的开发...
本篇文章将详细介绍如何在Eclipse中搭建Felix运行环境,以便进行OSGI企业应用的开发。 首先,我们需要安装Eclipse IDE,这是一个广泛用于Java开发的强大工具。确保你的Eclipse版本支持插件开发,例如Eclipse IDE ...
在Eclipse集成开发环境中,OSGI扮演着核心角色,从Eclipse 3.0开始,它便采用了OSGI作为其插件体系结构的基础。 OSGI的核心概念是 Bundle,每个Bundle都相当于一个独立的Java应用程序,拥有自己的类加载器,可以在...
此时,在Eclipse控制台中应当出现osgi提示符,表示OSGi环境已成功搭建。 4. 新建一个OSGi项目。在Eclipse中创建一个Plug-in项目,并设置项目的名称和Target Platform。在创建过程中,需要配置bundle的Manifest文件...
首先,"org.eclipse.osgi"是Eclipse项目中的核心组件,它实现了OSGi规范,并作为整个Eclipse平台的基础。版本号“3.7.2”表明这是该组件的一个特定发行版,发布于2012年1月10日,具体版本为v20120110-1415。 OSGi的...
这篇博客“eclipse下构建spring与OSGI项目”将指导我们如何在Eclipse环境中结合Spring和OSGi进行开发。 首先,理解Spring框架是至关重要的。Spring提供了一个全面的编程和配置模型,旨在简化Java企业级应用的开发。...
Eclipse OSGi在Eclipse IDE中的应用体现在插件系统上,每个Eclipse插件本质上就是一个OSGi Bundle,它们可以独立开发、部署,并根据需要启动或关闭,极大地增强了Eclipse的可扩展性和可维护性。 总之,"org.eclipse...
综上所述,这篇博文可能是关于如何在OSGi环境中使用Gemini Blueprint和Spring进行服务组件开发的教程,同时也可能涉及到了相关库的配置和使用,如Apache Commons、Logback、Spring和SLF4J。通过阅读这篇博文,读者...
Eclipse-OSGi是一种模块化的服务平台,它实现了OSGi(Open Services Gateway initiative)规范,这种规范允许动态的插件化和模块化。OSGi规范是由OSGi联盟制定的一系列接口标准,它定义了一种面向Java语言的模块系统,...