【问题标题】:Eclipse: How to include dependencies in osgi bundle export?Eclipse:如何在 osgi 包导出中包含依赖项?
【发布时间】:2020-01-27 02:34:12
【问题描述】:

使用 Eclipse,我有一个(某种)工作的 OSGI 包。它使用 Maven 来拉取大量依赖项。

如果我右键单击 > Run As "Maven Build" 并选择 "package" 作为目标,我最终会得到一个包含所有依赖项的 jar(很好),但是如果我执行 "Export > OSGI Bundle"缺少依赖项。

问题是我有另一个项目(WebSphere Liberty Feature Project)包含该捆绑包,但是当它拉取它时,它也缺少依赖项,因此生成的 .esa 文件也缺少依赖项。

有没有办法让 eclipse 处理依赖关系,这样我就不必在 eclipse 之外手动打包它或专门为此目的编写一个 maven 项目?

谢谢!

【问题讨论】:

    标签: maven osgi websphere-liberty apache-felix osgi-bundle


    【解决方案1】:

    当我看到你的帖子时,我遇到了同样的问题。 我假设这些 jar 将包含在导出的 jar 中并在运行时找到。

    最初,我创建了一个单独的“lib”目录并将库添加到其中,但在导出为 Bundle 导出或 Liberty 功能导出 (ESA) 时不会包含它们

    我首先使用“Java Archive into OSGi Bundle”导入向导解决了这个问题。

    您可以选择一个 jar 依赖项并将其添加到您使用向导选择的捆绑包中。当我使用它时,我注意到,jar 被添加到所选包中的“BundleContent”文件夹中。

    由于我有许多要包含的库,我只是将它们全部移动到“BundleContent”文件夹,更新了构建时间和运行时类路径,然后在导出时,所有依赖项都包含在内,在运行时,类可以然后以前没有的时候被发现。

    【讨论】:

      【解决方案2】:

      在您的 POM 中,您是否使用过 maven-bundle-plugin 及其 usage-details 来创建捆绑包。如果没有,您可以使用它来定义包的创建,也可以定义在创建包时要嵌入的依赖项。

      【讨论】:

        猜你喜欢
        • 2017-03-05
        • 1970-01-01
        • 2021-07-05
        • 2013-03-23
        • 2018-02-27
        • 2017-11-18
        • 2013-05-12
        • 2019-02-05
        • 1970-01-01
        相关资源
        最近更新 更多