gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:01:45 25 4
gpt4 key购买 nike

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

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

一定有更简单的方法,对吗?我仍然使用 Maven 来声明依赖项,但我只需要使用提供的范围。如果这些依赖项能够自动安装就太好了。

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

最佳答案

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

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

如果您不想一一安装每个 bundle ,您可以使用所谓的功能,如here所述。 。一项功能列出了所有需要的 bundle :

<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

关于maven - 如何使用maven项目轻松部署到Karaf Osgi容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22254631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com