当前位置: 首页 > 知识库问答 >
问题:

Apache Karaf功能先决条件

施飞昂
2023-03-14

卡拉夫 4.0.3

我有以下伪功能:

<features name="my-feature" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                           xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<feature name="C" version="${project.version}" start-level="25" install="auto">
    <bundle start-level="25">...BundleC1...</bundle>
</feature>

<feature name="A" version="${project.version}" start-level="30" install="auto">
    <feature prerequisite="true">C</feature>
    <bundle start-level="30">...BundleA1...</bundle>
</feature>

<feature name="B" version="${project.version}" start-level="35" install="auto">
    <feature prerequisite="true">C</feature>
    <bundle start-level="35">...BundleB1...</bundle>
</feature>

C是独立的,A依赖于C

在这个例子中,捆绑包“BundleB1”导入了错误的“BundleC1”的主要版本,我们得到了“缺少需求”错误(如预期的那样)。但是,如果我登录到karaf控制台并运行“功能:列表”,我会看到C已启动,A已卸载,B已卸载。

我希望A被启动,因为它只依赖于C。如果我注释掉整个C功能,或者如果我之后运行功能:安装A,A将正常启动

如果我把这三个功能放在单独的功能中。xml文件我得到了预期的结果,C A是启动的,B是卸载的。

我做错了什么?

我是否误解了先决条件属性的工作方式?顺便说一下,如果我跳过所有的先决条件属性,那么无论如何都不会安装任何特性...

共有1个答案

卫骏
2023-03-14

这是Karaf 4中的预期行为:Karaf创建一个具有要安装的所有功能的子系统。这个子系统在一次通过中得到解决:它作为一个整体要么成功,要么失败。

先决条件属性告诉Karaf在一个独立的子系统中安装此功能:所有捆绑包在尝试解析其他功能之前都已安装并启动。

在您的情况下:

  • C已安装/启动;
  • A B解决了,但是失败了
 类似资料:
  • 本文的读者应当至少手动安装过一次 LFS ,如果你没有做过 LFS ,这篇文章很可能不适合你,请先按照《Linux From Scratch 6.2》做一遍 LFS 。另外,如果你对编译优化也很感兴趣,那么《GCC编译优化指南》也很值得一读。

  • 本文向大家介绍cuda 先决条件,包括了cuda 先决条件的使用技巧和注意事项,需要的朋友参考一下 示例 要开始使用CUDA进行编程,请下载并安装CUDA Toolkit和开发人员驱动程序。该工具包包括nvcc,NVIDIA CUDA编译器以及开发CUDA应用程序所需的其他软件。该驱动程序可确保GPU程序在支持CUDA的硬件上正确运行,这也是您所需要的。 您可以通过nvcc --version从命

  • 通常当你写函数时会对接收的参数做了隐含的假设。如果这些假设成立,程序没有问题;如果假设不成立,你的程序可能就会崩溃了。 为了让你的程序更为健壮,将你的假设明确,以程序文档的方式写下来或写代码来进行检查。 比如我们观察calculateCartesian方法。是否存在对当前对象进行了假设呢?没错,我们假设极坐标系的标志量已经设置了并且mag和theta的值是有效的。如果假设不成立,那么这个函数的结果

  • 创建 LFS 系统并不是一项非常简单的任务。它需要有一定的 Linux 系统管理知识,以便能够解决问题和正确执行命令。作为最低要求,读者必须具备使用命令行(shell)来运行 cp, mv, ls, cd 等命令的能力。我们还希望读者具备使用和安装 Linux 软件的基本知识[非必须]。 因为本书假定读者至少具备了上述技能,各个 LFS 论坛也不太可能涉及上述基础知识,你可能会发现关于上述基础知识

  • 我有一个类似这样的问题:在返回函数的变量之前,我如何等待一个promise完成? 我有一个函数来执行一些表单验证。作为其中的一部分,它有时会打开一个模式,用户必须在返回值之前关闭该模式,如下所示: 注意,直到模式关闭,它才。 但是,我有一个基于函数计算的条件 这样做的问题是,如果将参数传递给,而不需要等待模式,那么我将得到一个未定义的promise。 TypeError:无法读取未定义的属性“th

  • Hana是一个没有外部依赖的头文件库(甚至不依赖Boost)。因此,在您自己的项目中使用Hana非常容易。基本上,只需下载本项目并添加include/目录到你的编译器的头文件搜索路径即可。或者,以下方式可以干净地安装Hana。 安装Boost 自Boost 1.61.0或更高版本开始,Hana包含在Boost中。因此,安装了Boost即可访问Hana了。 使用Homebrew 在MacOS上,可以