Как исключить пакет из Карафа

В моем проекте есть функция Караф, XML-файл содержит все комплекты OSGi. Теперь это используется в качестве зависимости в других проектах Maven pom.xml файл.

<dependency>
  <groupId>a.b.c</groupId>
  <artifactId>dummyfeature</artifactId>
  <type>xml</type>
  <classifier>features</classifier>
  <version>1.0.0</version>
</dependency>

Теперь следующий код используется для установки вышеуказанной функции.

KarafDistributionOption.features(
                 maven()
                .groupId("a.b.c")
                .artifactId("dummyfeature")
                .version("1.0.0")
                .type("xml")
                .classifier("features"), "dummyfeature")

Есть ли способ исключить конкретный пакет OSGi из перечисленных выше программно?

0 ответов

https://issues.apache.org/jira/browse/KARAF-5376 предоставляет способ изменения функций, считываемых из файла XML. Вы можете:

  • черный список некоторых пачек
  • черный список некоторых функций
  • переопределить некоторые пакеты (например, изменение версии или даже идентификаторы группы / артефакта)
  • переопределить все функции

Смотрите этот комментарий для обзора механизма. Фрагмента документации пока нет (у меня не было времени это сделать). Но для вашего конкретного случая, вы должны добавить etc/org.apache.karaf.features.xml файл с этим содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Configuration generated by Karaf Assembly Builder
-->
<featuresProcessing xmlns="http://karaf.apache.org/xmlns/features-processing/v1.0.0">
    <blacklistedBundles>
        <!-- there are several patterns you can use here -->
        <bundle>mvn:groupId/artifactId</bundle>
        <bundle>mvn:groupId/artifactId/1.0</bundle>
        <bundle>mvn:groupId/artifactId/[1,2)</bundle>
    </blacklistedBundles>
</featuresProcessing>
Другие вопросы по тегам