2

我有一个使用 maven-bundle-plugin 创建的 osgi-bundle:

<plugin>
  <groupId>org.apache.felix</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <configuration>
    <instructions>
      <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
    </instructions>
  </configuration>
</plugin>

该捆绑包是通过 maven-sling-plugin 安装的。

我有一个 fasterxml.jackson 依赖项,它作为 .m2 存储库中的 osgi-bundle 存在,并在我的项目中充当依赖项。

如何让 maven 将此依赖项也部署为 osgi-bundle?

目前我必须在我的 osgi-container 中手动安装它。

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.2.2</version>
</dependency>

编辑:

简化:

我如何让 maven 意识到我在 pom.xml 中称为依赖项的 osgi-bundle 应与依赖它的 bundle 一起安装在 osgi-container 中?

4

1 回答 1

3

您可能会发现最好将您的捆绑包与应用程序的一部分一起打包/content到 文件夹/apps中,这/apps/myapp/install将导致库被jcr 安装程序提供程序作为捆绑包安装。

这些文章中描述了几种使用 maven 自动打包/部署应用程序的方法:

或者,您可以只使用 CRXDE 来放置包,然后使用 CRX 包管理器来测试该方法,稍后它们会继续进行自动打包。

如果不想重新打包这两个OSGI bundle,可以使用sling maven插件直接安装jackson bundle

mvn org.apache.sling:maven-sling-plugin:install-file -Dsling.file=jackson-databind-2.2.2.jar
于 2013-09-18T11:33:02.257 回答