Как исключить пакет из Карафа
В моем проекте есть функция Караф, 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>