通过maven bundle和sling插件安装osgi依赖项

时间:2013-09-18 09:58:01

标签: osgi sling maven-bundle-plugin

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

<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安装的。

我有一个betterxml.jackson依赖项,它在我的.m2 repo中作为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应该与osgi-container中的依赖它一起安装?

1 个答案:

答案 0 :(得分:3)

您可能会发现将捆绑包作为应用程序的一部分打包,以及/content文件夹中应用程序的/apps/apps/myapp/install部分将导致库由jcr installer提供商以捆绑方式安装。

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

或者,您可以使用CRXDE放置捆绑包,然后使用CRX Package Manager来测试该方法,稍后他们将继续进行自动打包。

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

mvn org.apache.sling:maven-sling-plugin:install-file -Dsling.file=jackson-databind-2.2.2.jar