繁体   English   中英

如何使用maven项目轻松部署到Karaf Osgi容器

[英]How to deploy easily to Karaf Osgi container with maven project

我正在开发一个OSGI包,用于使用PDFBox库解析PDF文件。 我使用maven构建项目,使用Karaf作为OSGI容器。 PDFBox库与OSGI兼容,所以我认为这很容易。 但我无法正确获得部署模型。

在传统的Web应用程序中,我将构建一个包含所有依赖项的WAR文件,并将其放在Servlet容器中,然后部署它。 另一方面,我想出如何安装osgi包的唯一方法是手工完成。 我必须创建一个安装指令文件,列出必须手动下载并复制到Karaf部署文件夹的所有依赖项,并确保按正确的顺序执行。 我觉得自己又回到了石器时代。

必须有一个更简单的方法,对吧? 我仍然使用maven来声明依赖项,但我只需要使用提供的范围。 如果可以自动安装这些依赖项,那将会很棒。

我正在使用maven-bundle-plugin从我的应用程序生成一个包。 它确实生成了一个OBR存储库(repository.xml),我尝试使用obr karaf插件安装我的软件包,但它仍然无法帮助依赖。

配置捆绑包有不同的可能性。 我更喜欢通过Karaf控制台使用Maven安装捆绑包,例如:

install mvn:org.apache.pdfbox/pdfbox/1.8.4

如果您不想逐个安装每个捆绑包,则可以使用此处所述的所谓功能 功能列出了所有需要的包:

<feature name='my-project' version='1.0.0'>
    <feature version='2.4.0'>camel-spring</feature>
    <bundle start-level='80' start='false'>mvn:com.mycompany.myproject/myproject-dao</bundle>    
    <bundle start-level='85' start='false'>mvn:com.mycompany.myproject/myproject-service</bundle>
    <bundle start-level='85' start='false'>mvn:com.mycompany.myproject/myproject-camel-routing</bundle>
</feature> 

您通过Karaf控制台添加功能:

features:addUrl mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.0.0-m2/xml/features
features:install nmr

您也可以使用file处理程序代替mvn处理程序:

features:addUrl file:base/features/features.xml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM