没有捆绑包的 Apache Karaf 3rd 方 jar

Apache Karaf 3rd party jar without bundle

我得到了一个第 3 方 jar,我将其用于捆绑包中的 Blowfish 解密,我需要将其部署到 apache karaf 上。

所以现在我还需要 karaf 来了解这个 jar,但我找到的每个解决方案都是关于为那个 jar 创建一个完整的包,这对于一个简单的库 imo 来说非常多。

我已经在我的本地 Maven 存储库中安装了那个 jar 并添加了依赖项,但这也不起作用(至少在 karaf 上)。

有没有其他方法可以让第 3 方 jar 在 apache karaf 上工作?

您使用的是功能 xml 文件吗?如果是这样,您可以使用 wrap:mvn: 使其可用:

<feature name="feature1" version="1.0.0">
  <bundle>wrap:mvn:group.id/third.party.artefact.id/version</bundle>
  <bundle>mvn:group.id/your.artefact/version</bundle>
</feature>

这将在运行时捆绑第三方 jar,并确保它已安装供您的捆绑包使用。摘自 Karaf - Creating bundles

沉迷于@fiw,您可能想使用 Bndtools osgify 第三方 jar。为了实现它:

  1. Download bnd tools
  2. 打开一个 shell 你已经下载了 bnd-2.4.0.jar.
  3. 类型:

    java -jar bnd-2.4.0.jar wrap -o osgify-dependency.jar dependency.jar

其中 dependency.jar 是您的第三方,osgify-dependency.jar 将是输出。

  1. 部署到 maven repo 覆盖以前的 maven 坐标,或者用不同的坐标部署你的第三方。

    mvn deploy:deploy-file -Dfile osgify-dependency.jar ...