Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Karaf可以自己从maven存储库下载依赖项吗?_Maven_Osgi_Apache Karaf_Osgi Bundle_Karaf - Fatal编程技术网

Karaf可以自己从maven存储库下载依赖项吗?

Karaf可以自己从maven存储库下载依赖项吗?,maven,osgi,apache-karaf,osgi-bundle,karaf,Maven,Osgi,Apache Karaf,Osgi Bundle,Karaf,我正在尝试在OSGI容器上部署java模块。通过karaf“feature”,我能够生成feature.xml,其中列出了所需的所有捆绑包 正如我们所知,每个捆绑包都是一个依赖项。现在我们有了一些依赖项,maven可以从其存储库下载这些依赖项 我如何指示karaf直接从maven repo下载这些依赖项,或者甚至从我们本地的maven repo下载这些依赖项。例如,在pom中,我们编写依赖项,当我们执行maven clean安装时,它会将所有JAR下载到本地m2 repo 我的功能xml包含这些

我正在尝试在OSGI容器上部署java模块。通过karaf“feature”,我能够生成feature.xml,其中列出了所需的所有捆绑包

正如我们所知,每个捆绑包都是一个依赖项。现在我们有了一些依赖项,maven可以从其存储库下载这些依赖项

我如何指示karaf直接从maven repo下载这些依赖项,或者甚至从我们本地的maven repo下载这些依赖项。例如,在pom中,我们编写依赖项,当我们执行maven clean安装时,它会将所有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>
mvn:org.springframework.data/spring-data-cassandra/1.2.2.RELEASE
mvn:org.springframework.data/spring-cql/1.2.2.RELEASE
wrap:mvn:org.springframework/spring-context/4.0.9.RELEASE
wrap:mvn:org.springframework/spring-aop/4.0.9.RELEASE
wrap:mvn:org.springframework/spring-beans/4.0.9.RELEASE
包装:mvn:aopalliance/aopalliance/1.0
wrap:mvn:org.springframework/spring-beans/4.2.3.RELEASE
wrap:mvn:org.springframework/spring-core/4.2.3.RELEASE
mvn:commons日志记录/commons日志记录/1.2
wrap:mvn:org.springframework/spring-expression/4.2.3.RELEASE
wrap:mvn:org.springframework/spring-jdbc/4.2.3.RELEASE
wrap:mvn:org.springframework/spring-tx/4.2.3.RELEASE
wrap:mvn:org.springframework/spring-test/4.2.3.RELEASE

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

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

这取决于karaf版本。Karaf2.x没有下载到本地maven存储库。不过,它能够从当地回购协议中读取数据


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

问题是,当我说mvn:commons lang/commons lang/2.6时,我可以通过功能要求karaf从maven下载例如commons lang吗?是的,它会自动下载。它将尝试从
$KARAF_HOME/etc/org.ops4j.pax.url.mvn.repositories
属性中配置的所有存储库中获取。这包括默认情况下的Maven Central和其他几个版本。我在存储库上测试时发现,Maven站点主要允许下载GET方法,而karaf无法从Maven repo下载这些lib。