我正在开发一个OSGI,用于使用PDFBox库解析一个PDF文件。我使用maven来构建这个项目,并使用Karaf作为OSGI容器。PDFBox库兼容OSGI,所以我认为这很容易。但我就是搞不懂部署模型。
在传统的web应用程序中,我会构建一个包含所有依赖项的WAR文件,并将其放入Servlet容器中,然后进行部署。另一方面,我知道如何安装osgi包的唯一方法是手工安装。我必须创建一个安装指令文件,其中列出了必须手动下载并复制到Karaf deploy文件夹的所有依赖项,并确保按正确的顺序执行。我觉得我又回到了石器时代。
一定有更简单的方法,对吧?我仍然使用maven声明依赖项,但我只需使用提供的作用域即可。如果可以自动安装这些依赖项,那就太好了。
我正在使用maven- bundle插件从我的应用程序中生成一个包。它确实生成了一个OBR存储库(repository.xml),我尝试使用obr插件安装我的包,但是它仍然无助于依赖关系。
发布于 2014-03-07 16:39:02
供应包有不同的可能性。我更喜欢通过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与mvn处理程序不同,您还可以使用file处理程序:
features:addUrl file:base/features/features.xmlhttps://stackoverflow.com/questions/22254631
复制相似问题