将OSGI项目打包为单个jar



我有一个很大的OSGI包,我想把它打包并作为一个单独的jar文件发布。我正试图找出将多个罐子包装成一个大罐子的最佳方法。

到目前为止,我所看到的最好的选择似乎是一个jar项目。然而,我们正在使用的框架从'plugins'目录中拉入jar文件,one-jar似乎希望/要求所有jar文件只存储在lib目录中。可能有一个简单的方法来解决这个问题,我还没有完全了解架构,因为我还在试图决定哪种方法是最好的。

对于将多个OSGI包打包到一个jar中的其他方法和/或如何使其在一个jar中工作的任何建议都非常感谢。

谢谢

另一种解决方案是使用PojoSR来运行bundle,而不是在OSGi框架中运行它们。PojoSR简单地实现了OSGi的服务层,没有模块层。这样做的一个副作用是,您可以轻松地将应用程序打包为可执行的JAR文件。当您运行这个JAR时,它也不需要在磁盘上创建一个包缓存。

有关PojoSR的更多信息,请访问:
  • http://code.google.com/p/pojosr/
  • http://luminis-technologies.com/?p=358
  • http://www.infoq.com/news/2011/10/pojosr

使用Apache Felix Maven Bundle Plugin,我相信该选项可以实现您正在寻找的功能。http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html

Apache Sling的maven-launchpad-plugin从bundle列表中生成一个可运行的jar(可选的war文件和Karaf描述符),参见http://sling.apache.org/site/maven-launchpad-plugin.html

Sling安装程序可用于从文件系统或其他来源加载额外的包,参见http://sling.apache.org/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html

最新更新