#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, вероятно, в любом случае более прост и надежен.