我的目标是为我的多模块 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 程序集插件,但这似乎不太理想。
谢谢。
最佳答案
您可以使用文件格式来寻址功能文件中的 bundle ,但 Maven 功能插件仅支持 Maven 解析。
应用程序的最终用户无法访问互联网是很常见的情况。您仍然可以使用 Maven 解析。您有两个主要选择:
- 使用 karaf 功能插件从功能创建 Maven 存储库。然后,您可以将此目录添加到 org.ops4j.pax.url.mvn.cfg 中的 maven 存储库列表
- 从 karaf 2.3 开始,您可以使用 kar 文件。 kar 文件是 Maven 存储库的 zip 和指向内部功能文件的指针。您可以将 kar 文件放入 karaf 的部署文件夹中,它将安装该功能
这样做的好处是,您的功能文件始终基于 Artifact 的 Maven ID。您只需改变交付 jar 的方式即可。因此,如果您有互联网或 Maven 存储库访问权限,您可以简单地使用功能文件(例如在开发中)。
关于java - 使用 Karaf 的 features-maven-plugin maven 插件需要帮助... osgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15015378/