我正在尝试在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>
答案 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。因此,以下时间安装的速度要快得多。