首页 > 解决方案 > Apache Karaf 功能依赖

问题描述

在 feature.xml(Apache Karaf 供应机制)标签feature中有一个dependency属性。这个属性有什么作用?

例如:

<feature dependency="true">custom-feature-name</feature>

我在哪里可以找到有关它的任何信息?

经过短暂的谷歌搜索后,我只在标签上找到dependency了属性:bundle

依赖属性的作用是标记一个bundle是一个依赖。如果已满足依赖项(现有捆绑包已导出相同的包/版本),则不会安装它。如果安装了声明的功能解析器(例如安装了 obr),则会发生此行为。

来源: http: //karaf.922171.n3.nabble.com/features-xml-dependency-quot-true-quot-td3286359.html

但是,仍然没有关于功能标签的信息。

标签: apache-karafkaraf

解决方案


似乎对特征的依赖定义

<feature name="${project.name}-cxf" version="${cxfVersion}" description="Gets CXF up and running." install="auto">
    <feature version="${cxfVersion}" dependency="true">cxf</feature>
</feature>

意味着功能 ${project.name}-cxf 不必启动 cxf,因为它声明了其他东西将提供它。这确实违反直觉。谁想出了这个可笑的误称?

要自动安装 cxf,它实际上应该设置为 false。这可以通过在dependency="true" 并再次设置为false 时查找功能${project.name}-cxf 的名称来验证。

Karaf 的开发者,dependency=false应该重命名provided=true


推荐阅读