0

我的目标是为我的多模块 Maven 项目创建一个 features.xml,并收集各种功能所需的所有必需的 jar。我需要通过 file: 而不是 mvn 来解析 bundle jars:

我尝试使用 features:generate-features-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 程序集插件,但这似乎不是最理想的。

谢谢。

4

1 回答 1

2

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

应用程序的最终用户无法访问互联网是很典型的。您仍然可以使用 Maven 分辨率。您有两个主要选择:

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

这样做的好处是您的功能文件始终基于工件的 maven id。你只会改变你交付罐子的方式。因此,如果您有 Internet 或 maven repo 访问权限,您可以简单地使用功能文件(例如在开发中)。

于 2013-02-22T11:17:51.123 回答