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

在Karaf中,有没有办法控制kar文件的加载顺序?关于跨 kar 文件依赖关系

卜盛
2023-03-14

在karaf中,如果kar文件A的某个特性依赖于kar文件B中的某个特性,并且kar文件A在B之前加载,那么kar文件A中的特性的安装将会失败,表示存在未解决的依赖性。

捆绑启动级别似乎没有区别。

有没有办法控制哪个kar文件首先加载?还是一种解决跨卡依赖关系的方法?或者甚至是一种使karaf在加载所有kar文件之前不尝试安装任何捆绑包/功能的方法?

共有2个答案

莫英喆
2023-03-14

我不确定你这是否回答了你的问题。但是捆绑包加载的顺序可以在Apache Karaf中使用bundle-start level标签进行控制。

例如:

<?xml version="1.0" encoding="UTF-8" ?> 
<features name="cxl_esb_features">
<feature name="cxl_camel_routes">
  <feature>camel-jms</feature> 
  <bundle start-level="81">mvn:org.apache.commons/com.springsource.org.apache.commons.collections/3.2.1</bundle> 
  <bundle start-level="82">mvn:org.apache.commons/com.springsource.org.apache.commons.lang/2.6.0</bundle> 
 </feature>
</features>
庄萧迟
2023-03-14

据我所知,这是不可能的,因为KAR部署人员认为KAR文件是完整的。如果您需要这样的依赖关系,我建议使用普通功能。xml文件。

 类似资料:
  • 我有一个我为Apache Karaf制作的KAR文件。 现在,要让我的KAR在Karaf 2.4.1中运行,我必须在Karaf控制台中手动键入以下内容,以允许声明性服务工作。 我的KAR文件有没有办法指示Karaf自动安装这个scr? 关键是我希望能够通过将KAR放入Karaf deploy文件夹中来部署KAR,而无需执行任何手动命令。

  • 我有一个Karaf应用程序,在一个.kar文件中有三个bundle,由features.xml指定。 部署工作在我的Dev机器上,我怀疑依赖包是从本地Maven repo中提取的,因为构建过程是最新的。 当前,要在目标计算机上解决这一问题,我必须将本地repo复制到[karaf.root]/system/文件夹中,以便在热部署.kar时更新所有包。 有没有人知道如何配置features.xml,使

  • 我试图使用gradle和以下指令指定一些jar依赖项: http://gradle.org/docs/current/userguide/dependency_management.html#sub:file_dependencies 当我从windows cmd运行gradle时,我得到: 我错过了什么?

  • 在Surefire插件中,您有一个文件(或regex)的排除列表,如下所示: 我想在排除列表中添加一堆与regex不匹配的文件。这个列表大约有200个文件(一个古怪的集合)。我想从Maven的外部文件中添加这些文件。 我认为使用maven properties插件有一种方法可以做到这一点。不过,我看不出这将如何将变量加载到列表中。 有没有办法从文件中加载排除列表?

  • 我有一个依赖于2 jar文件的应用程序: 操作员界面。罐子 操作员。震击器 我想使用Maven结构构建我的项目。我按照Maven站点教程创建了如下结构: 我已经把我的源文件FileProcess.javaE:\project\src\main\java\source\app。 FileProcess在2 external中具有依赖关系。jar文件,但我不知道如何在pom中定义这种依赖关系。xml。

  • 不幸的是,我在gradle docs中找不到任何指向我这个问题的东西。非常感谢您的帮助!