2012-02-16 75 views
10

一个完整的OSGi应用程序我有一组OSGi的束被使用Maven构建,我想知道是否有一个Maven插件可用,可以让我做到以下几点:创建与Felix和Maven的

  1. 指定要包含在一个发行版中的bundle集和/或指定一个bundle并解决依赖关系。
  2. 构建框架的完整分布。我的意思是一个包含所有需要的软件包的zip文件,以及用于felix的正确目录结构,以便用户可以简单地解压缩该文件并键入“java -jar bin/felix.jar”。

我做了一些Google搜索,除了appassembler之外,没有发现任何非常有希望的东西。你们有没有想出一个好的解决方案?

更新 下面是我试图完成的一个说明。

example-parent\ 
       bundle-one 
       bundle-two 
       bundle-three 
       assembly-one 
       assembly-two 

assembly-one将包括bundle-onebundle-twoassembly-two将包括bundle-twobundle-three或其任何组合。然后,当您构建项目时,您将获得两个zip文件,一个用于assembly-one,另一个用于assembly-two,其中包含自包含的felix安装中的相应包。例如:

assembly-one.zip\ 
       bin\felix.jar 
       bundle\bundle-one, bundle-two, plus bare min felix bundles 
       conf\any configuration files I need 

希望能提供更多关于我正在努力完成的信息。我想这与Eclipse做一个feature.xml类似,但当然不使用Eclipse。

回答

3

Fred建议使用程序集插件打包一个可以压缩的自包含分布,这是一个很好的方法。如果你正在寻找这样的构建文件如何工作的例子,那么Apache Aries博客示例源代码使用maven bundle和assembly插件。

另一种方法是创建应用程序工件。这个(还没有)没有单一的OSGi标准,但是有几个项目提供了一种将束分组在一起成为超束的方法。这不像你用程序集描述的那样,因为OSGi框架不包括在内,但它与Eclipse feature.xmls类似。查看Apache Aries eba(企业捆绑软件归档)应用程序,处女座计划文件或Karaf功能。在大多数这些捆绑中,您会得到一个包含一些捆绑包的归档文件和/或描述应用程序内容的元数据文件。不包含在归档中的包可以从存储库供应。对于Aries,还有一个eba maven包装,它将生成包含APPLICATION.MF文件和捆绑包的.eba存档。

在Enterprise OSGi in Action(http://www.manning.com/enterpriseosgiinaction)的第4章中,我们已经详细了解了这一点,或者eba的快速谷歌,处女座计划或karaf功能应该会为您找到更多。你的用例的缺点是应用程序需要预先安装到适当的技术中才能部署到运行时中,因为没有核心的OSGi。

Felix文件安装的另一个项目是让Felix文件安装更容易。这使您可以将捆绑包放入受监视的目录中,从而无需编写配置文件。

6

吊衣的Launchpad插件[1]创建一个可运行jar文件或嵌入OSGi框架和捆绑的定制列表war文件,这可能是你所需要的。有了这你甚至不需要解压缩生成的jar文件,只需启动就足够了。

[1] http://sling.apache.org/site/maven-launchpad-plugin.html

0

如果您正在使用OSGi的V4 +及使用Maven构建,使用pax-ops4j。使用非常方便,使OSGi的发展变得轻而易举。

+4

你能解释一下如何打包整个OSGi应用程序,而不是说“use pax-ops4j”吗? – oconnor0 2012-02-20 22:58:20