首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用maven项目轻松部署到Karaf Osgi容器

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

Stack Overflow用户
提问于 2014-03-07 15:50:35
回答 1查看 7.2K关注 0票数 9

我正在开发一个OSGI,用于使用PDFBox库解析一个PDF文件。我使用maven来构建这个项目,并使用Karaf作为OSGI容器。PDFBox库兼容OSGI,所以我认为这很容易。但我就是搞不懂部署模型。

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

一定有更简单的方法,对吧?我仍然使用maven声明依赖项,但我只需使用提供的作用域即可。如果可以自动安装这些依赖项,那就太好了。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-07 16:39:02

供应包有不同的可能性。我更喜欢通过Karaf控制台使用Maven安装包,如:

代码语言:javascript
复制
install mvn:org.apache.pdfbox/pdfbox/1.8.4

如果您不想一个一个地安装每个包,您可以使用这里描述的所谓特性。一个特性列出了所有需要的包:

代码语言:javascript
复制
<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控制台添加一个特性:

代码语言:javascript
复制
features:addUrl mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.0.0-m2/xml/features
features:install nmr

mvn处理程序不同,您还可以使用file处理程序:

代码语言:javascript
复制
features:addUrl file:base/features/features.xml
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22254631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档