【问题标题】:Can Karaf download dependencies from maven repository on its own?Karaf 可以自己从 maven 存储库下载依赖项吗?
【发布时间】:2016-04-13 00:34:33
【问题描述】:

我正在尝试在 OSGI 容器上部署我的 java 模块。通过 karaf 'feature' 我能够生成 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>

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 当我说 mvn:commons-lang/commons-lang/2.6 时,我可以通过功能要求 karaf 从 maven 下载 commons-lang 吗?我?
    • 是的,它会自动执行此操作。它将尝试从$KARAF_HOME/etc/org.ops4j.pax.url.mvn.cfgorg.ops4j.pax.url.mvn.repositories 属性中配置的所有存储库中获取。这包括默认情况下的 Maven Central 和其他几个。
    • 我正在对存储库进行测试,发现 maven 站点主要允许 GET 方法下载,而 karaf 无法从 maven repo 下载这些库。
    【解决方案2】:

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

    Karaf 3.x 和 4.x 首次访问时会将所有依赖项下载到本地 maven 存储库。所以接下来的安装速度会快很多。

    【讨论】:

      猜你喜欢
      • 2013-10-08
      • 2018-02-28
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2019-07-31
      • 2020-10-30
      相关资源
      最近更新 更多