需要帮助使用Karaf的功能-maven-plugin maven插件...奥斯吉



我的目标是为我的多模块maven项目创建一个features.xml,并收集各种功能所需的所有jar。我需要通过文件:而不是mvn:来解决捆绑包jar

我尝试使用以下特性:生成特性xml目标。首先,没有关于属性文件格式的文档。其次,它创建的捆绑包都由mvn解析:例如

<feature name='spring-jms' version='3.1.0.RELEASE'>
  <bundle>mvn:org.springframework/spring-tx/3.1.0.RELEASE</bundle>
  <feature version='3.1.0.RELEASE'>spring-core</feature>
  <bundle>mvn:org.codehaus.jackson/jackson-core-asl/1.9.9</bundle>
  <bundle>mvn:org.springframework/spring-jms/3.1.0.RELEASE</bundle>
</feature>

我的第一个问题是,是否有任何方法可以通过file:而不是mvn:访问捆绑包?例如

<bundle>file:some/path/spring-tx.jar</bundle>  

或者其他什么。

第二个问题:收集所有必需的jar文件的最佳方法是什么?我一直在使用maven汇编插件,但这似乎不太理想。

谢谢。

您可以使用文件格式来寻址功能文件中的捆绑包,但maven功能插件仅支持maven解析。

应用程序的最终用户无法访问互联网是非常典型的。尽管如此,您仍然可以使用maven分辨率。您有两个主要选项:

  • 使用karaf功能插件从一个功能创建一个maven repo。然后,您可以将此目录添加到org.ops4j.pax.url.mvn.cfg中的maven repos列表中
  • 从karaf 2.3开始,你可以使用kar文件。kar文件是maven repo的zip文件,也是指向内部功能文件的指针。您可以将kar文件放入karaf的deploy文件夹中,它将安装该功能

这样做的好处是,您的特性文件总是基于工件的maven-id。你只会改变你送罐子的方式。因此,在您有互联网或maven repo访问权限的情况下,您可以简单地使用功能文件(例如在开发中)。

最新更新