当前位置: 首页 > 知识库问答 >
问题:

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

乐正晟
2023-03-14

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

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

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

共有1个答案

艾星河
2023-03-14

设置包有不同的可能性。我更喜欢通过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
features:addUrl file:base/features/features.xml
 类似资料:
  • 所以这是我的问题。我正在努力将一个简单的maven应用程序部署到Glassfish服务器中,只是为了检查我的配置是否正确,以便进一步开发。我使用的是NetBeans IDE,但由于它提供的控制台日志很小,几乎无法读取,所以我尝试使用系统终端(我使用的是Fedora)。 我试图部署的应用程序由一个无状态EJB bean(名为DziekanatBean,当前不执行任何操作)和一个Maven POM项目

  • 本文向大家介绍如何把spring boot项目部署到tomcat容器中,包括了如何把spring boot项目部署到tomcat容器中的使用技巧和注意事项,需要的朋友参考一下 把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一、修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二、移除嵌入式tomcat插件 在pom.xml里

  • 我目前在一个我为很多人定义规则的环境中工作。我们目前使用Hudson和artiFactory,我想评估切换到Jenkins和Nexus是否值得迁移成本(但这不是问题)。 为了评估它,我在本地设置了Maven、Jenkins和Nexus,我试图找到一个设置来使用以前的设置,以便我可以比较解决方案。这里的问题是: > 注意:安装和用户配置不能用于添加共享项目信息,例如,设置或公司范围。 我们当前的根P

  • 我有一个maven项目,我正在Intellij IDEA中导入它。除了部署maven项目控制台时显示以下错误外,一切都很好 [ERROR]未能执行goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy(default-deploy)on project multisite:Deployment Failed:在distributio

  • 我有一个模块化maven项目。在最高层,我有: 我已经尝试了我能想到的一切: 重新执行项目, 清理所有eclipse相关文件, 清理本地maven存储库, 正在清理服务器tmp文件夹并重新添加项目, 更新并安装maven 到目前为止没有任何帮助。 我有一个令人震惊的发现:我添加了一个名为“amodule”的模块。你猜怎么着,它得到了所需的罐子而其他的没有。似乎只有按字母顺序排列的第一个模块获得ja

  • 首先,我不确定必须在gwt-maven项目中部署哪些文件夹和文件:.gwt.settings bin src/main/java target war pom.xml