Вставка зависимостей архива Karaf в файл функций для создания архива Karaf

У меня есть проект Java с использованием Maven, и я использую Karaf 3.0.4. Я создаю файлы .kar с помощью плагина Maven:

  <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.

Теперь я хотел бы добавить зависимости архива Karaf в этот файл .xml, но я не нашел способ сделать это. Я ожидал что-то вроде:

<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>

person Jean-Baptiste Martin    schedule 26.11.2015    source источник
comment
Можете ли вы опубликовать featureFile.xml?   -  person 11thdimension    schedule 26.11.2015
comment
вы не можете добавлять зависимости к другим файлам kar из feature.xml   -  person Achim Nierbeck    schedule 26.11.2015


Ответы (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

Здесь есть запись для функции «Архив Карафа».

<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.

person 11thdimension    schedule 26.11.2015
comment
Спасибо, этот файл интересен, но он не отвечает на мой вопрос :/ В этом файле мы видим, что пакеты (.jar) разрешены. В моем случае я бы хотел, чтобы архив Karaf (.kar) был разрешен. - person Jean-Baptiste Martin; 26.11.2015
comment
Файл Kar также является комплектом для karaf. Попробуйте указать путь к файлу Kar в XML-файле вашей функции, я редактирую, чтобы опубликовать пример для файловой системы JAR. - person 11thdimension; 26.11.2015