Плагин Maven Bundle, добавляющий требуемые возможности: osgi.ee ;filter:=»(

#maven #apache-karaf #openapi-generator #maven-bundle-plugin

#maven #apache-karaf #openapi-генератор #maven-bundle-plugin

Вопрос:

Я пытаюсь развернуть сгенерированный OpenAPI код в Karaf.

Караф говорит, что мне нужно:

 javax.annotation.meta;version="[3.0,4)"
javax.xml.bind.annotation;version="[2.3,3)"
  

Я использую Java 1.8 для компиляции и запуска кода.

Я использую maven-bundle-plugin версию v3.5.1

Независимо от того, что я делаю, я получаю эту строку в своем MANIFEST.MF

 Require-Capability: osgi.ee;filter:="(amp;(osgi.ee=JavaSE)(version=9.0))"
  

что, я думаю, возможно, является корнем проблемы.

Есть ли способ заставить Require-Capability использовать Java 8?
Или какой-нибудь лучший обходной путь?

Комментарии:

1. вы уверены, что используете Java 1.8 для компиляции? bndtools (используемый плагином maven-bundle) сканирует все классы в пути к классам и отслеживает версию файла класса. Это поведение по умолчанию, вы можете переопределить его, используя инструкцию <_noee>true</_noee> в конфигурации вашего плагина maven bundle </configuration>

Ответ №1:

bndtools (используемый плагином maven-bundle) сканирует все классы в пути к классам и отслеживает версию файла класса. Это поведение по умолчанию, вы можете переопределить его, используя инструкцию <_noee>true</_noee> в конфигурации плагина maven bundle

Комментарии:

1. Спасибо, это не исправило проблему, но поддержало. В итоге я решил обойти это, используя CLI для генерации файлов POJO и API для CXF Jackson вместо этого. _noee по-прежнему генерировал требование Java 9. Похоже, что проблема как-то связана с зависимостями OkHttp Gson где-то глубоко внутри, но у меня нет времени рассматривать это дальше. CXF Jackson, вероятно, в любом случае более прост и надежен.