【问题标题】:Inserting Karaf Archive dependencies in features file to create Karaf Archive在功能文件中插入 Karaf 存档依赖项以创建 Karaf 存档
【发布时间】:2015-11-26 10:31:44
【问题描述】:

我有一个使用 Maven 的 Java 项目,我使用的是 Karaf 3.0.4。 我使用 Maven 插件创建 .kar 文件:

  <groupId>org.apache.karaf.tooling</groupId>
    <artifactId>features-maven-plugin</artifactId>
    <version>2.4.3</version>
    <executions>
       <execution>
          <id>create-kar</id>
          <goals>
             <goal>create-kar<goal>
          </goals>
          <configuration>
             <featuresFile>path/toMy/featureFile.xml</featuresFile>
          </configuration>
       </execution>
    </executions>

在这个featureFile.xml中,我添加了必要的特性和捆绑依赖;它工作正常:.kar 文件已创建。

现在,我想在这个 .xml 文件中添加 Karaf 存档依赖项,但我没有找到方法。我期待的是这样的:

<feature name="myFeature" version="1.0" install="manual">
   <feature>anotherFeature</feature>
   <bundle>path/to/aBundle</bundle>
   <kar>path/to/aKarafArchive</kar>
</feature>

你有什么想法吗?是否可以 ?

编辑

这是我的 featureFile.xml

<?xml version="1.0" encoding="UTF-8"?>
<features name="featureFile" xmlns="http://karaf.apache.org/xmlns/features/v1.2.1">

    <feature name="aFeature" description="Simple example" version="1.0" install="manual">
        <feature>CodeHaus</feature>
        <bundle>mvn:org.testng/testng/6.8.8</bundle>
    </feature>

    <feature name="CodeHaus" description="">
        <details>Get CodeHaus bundles</details>
        <bundle>mvn:org.codehaus.jackson/jackson-core-asl/1.9.2</bundle>
        <bundle>mvn:org.codehaus.jackson/jackson-mapper-asl/1.9.2</bundle>
    </feature>

</features>

【问题讨论】:

  • 你能发布 featureFile.xml 吗?
  • 你不能从 feature.xml 添加依赖到其他 kar 文件

标签: java bundle maven-plugin apache-karaf apache-servicemix


【解决方案1】:

我安装了 3.0.0.RC1。检查里面的标准功能文件

Karaf_root\system\org\apache\karaf\features\standard\3.0.0.RC1\standard-3.0.0.RC1-features.xml

对你来说,它应该显示不同的版本。

Karaf_root\system\org\apache\karaf\features\standard\${karaf-version}\standard-${karaf-version}-features.xml

这里有一个 Karaf 存档功能的条目。

<feature resolver="(obr)" description="Provide KAR (KARaf archive) support" version="3.0.0.RC1" name="kar">
    <bundle start-level="30">mvn:org.apache.karaf.kar/org.apache.karaf.kar.core/3.0.0.RC1</bundle>
    <bundle start-level="30">mvn:org.apache.karaf.kar/org.apache.karaf.kar.command/3.0.0.RC1</bundle>
    <bundle start-level="30">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.kar/3.0.0.RC1</bundle>
</feature>

您可以在功能 XML 文件中使用相同的内容。

已编辑*

文件系统 JAR 路径如下所示

<?xml version="1.0" encoding="UTF-8"?>
<features name="MyFeaturesRepo">
  <feature name="example-camel-bundle">
    <bundle>file:C:/Projects/camel-bundle/target/camel-bundle-1.0-SNAPSHOT.jar</bundle>
    <feature version="6.0.0.redhat-024">camel-core</feature>
    <feature version="6.0.0.redhat-024">camel-spring-osgi</feature>
    <feature version="6.0.0.redhat-024">servicemix-camel</feature>
  </feature>
</features>

来源:

https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.0/html/Deploying_into_the_Container/files/DeployFeatures-Create.html

它来自 JBoss Fuse,但我认为它也应该适用于普通的 Karaf。

【讨论】:

  • 谢谢,这个文件很有趣,但它没有回答我的问题:/ 在这个文件中,我们可以看到捆绑包 (.jar) 已解决。就我而言,我希望解决 Karaf 存档 (.kar)。
  • Kar 文件也是 karaf 的一个包 尝试在您的功能 XML 中提供 Kar 文件的路径,我正在编辑以发布文件系统 JAR 的示例。
猜你喜欢
  • 2023-03-19
  • 2016-04-13
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
相关资源
最近更新 更多