我有一个大型OSGI包,我想打包并作为单个jar文件发布。我想弄清楚将多个罐子包装成一个大罐子的最佳方法是什么。
到目前为止,我见过的最佳选择似乎是一个罐子项目。但是,我们使用的框架从'plugins'目录中提取jar文件,而one-jar似乎想要/要求所有jar文件只存储在lib目录中。可能有一个简单的方法来解决这个问题,我还没有完全了解这个架构,因为我仍在努力确定哪种方法最好。
对于将多个OSGI包打包到一个jar中的其他方法的任何建议和/或我将如何使它在一个jar中工作的方式表示赞赏。
由于
答案 0 :(得分:1)
另一种解决方案可能是使用PojoSR运行捆绑包,而不是在OSGi框架中运行它们。简而言之,PojoSR实现了没有模块层的OSGi服务层。其中一个副作用是您可以轻松地将应用程序打包为可执行的JAR文件。当您运行该JAR时,它也不需要在磁盘上创建捆绑缓存。
有关PojoSR的更多信息,请访问:
答案 1 :(得分:0)
使用Apache Felix Maven Bundle插件,我相信该选项可能会实现您的目标。 http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
答案 2 :(得分:0)
Apache Sling的maven-launchpad-plugin从一个包列表中生成一个可运行的jar(以及一个war文件和一个Karaf描述符),参见http://sling.apache.org/site/maven-launchpad-plugin.html
Sling安装程序可用于从文件系统或其他来源加载其他捆绑包,请参阅http://sling.apache.org/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html