Karaf可以自己从maven资源库下载依赖项吗?

时间:2016-01-08 10:47:08

标签: maven osgi apache-karaf osgi-bundle karaf

我正在尝试在OSGI容器上部署我的java模块。通过karaf'功能'我能够生成feature.xml,列出所有需要的包。

我们知道每个捆绑包都是依赖关系。现在我们确实有一些依赖项可以由maven从其存储库下载。

我如何指出karaf直接从maven repo下载这些依赖项,或者甚至从我们当地的maven repo下载。例如像在pom中我们编写依赖项,当我们进行maven clean install时,它会将所有jar下载到本地m2 repo。

我的功能xml包含了尚未解析的maven repo捆绑包。

<bundle>mvn:org.springframework.data/spring-data-cassandra/1.2.2.RELEASE</bundle>
<bundle>mvn:org.springframework.data/spring-cql/1.2.2.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-context/4.0.9.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-aop/4.0.9.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-beans/4.0.9.RELEASE</bundle>
<bundle>wrap:mvn:aopalliance/aopalliance/1.0</bundle>
<bundle>wrap:mvn:org.springframework/spring-beans/4.2.3.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-core/4.2.3.RELEASE</bundle>
<bundle>mvn:commons-logging/commons-logging/1.2</bundle>
<bundle>wrap:mvn:org.springframework/spring-expression/4.2.3.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-jdbc/4.2.3.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-tx/4.2.3.RELEASE</bundle>
<bundle>wrap:mvn:org.springframework/spring-test/4.2.3.RELEASE</bundle>

2 个答案:

答案 0 :(得分:2)

$KARAF_HOME/etc文件夹中编辑org.ops4j.pax.url.mvn.cfg文件以引用本地存储库的位置。

org.ops4j.pax.url.mvn.localRepository=<path to repository>

答案 1 :(得分:0)

这取决于karaf版本。 Karaf 2.x没有下载到本地maven存储库。它能够从当地的回购中读取。

Karaf 3.x和4.x在第一次访问时将所有依赖项下载到本地maven repo。因此,以下时间安装的速度要快得多。