Нет готовых зависимостей
В настоящее время я работаю с OSGI и Karaf.
Моя проблема в том, что нет зависимостей "osgi Ready", что означает, что jar не готов к развертыванию в виде пакета, например, в karaf.
Я попробовал два решения, чтобы справиться с такого рода проблемами:
Я пытался использовать "Embed-Dependency", которая будет включать в себя банку
зависимость от проекта... Я не думаю, что это может быть решением, потому что когда я пытаюсь вставить банку, она попросит меня включить другие банки, от которых зависит первая банка, и так далее...Я попытался преобразовать файлы jar без "osgi Ready" в пакеты, используя инструмент bnd или из "Plug-in from Existing JAR Archive" из проекта eclipse. И это привело к тому же результату, каждая банка будет называть другую банку, которая зависит от нее..
Я не уверен, что делаю это неправильно или в чем проблема. Какие-нибудь советы, как бороться с готовыми зависимостями?
1 ответ
Самый простой способ начать - использовать протокол wrap: для автоматического создания jar-файла. За кулисами он использует bnd для создания связки на лету. Просто добавьте wrap: к URL-адресу mvn банки.
Когда вы попытаетесь установить jar, используя bundle: install -s wrap: mvn:... karaf сообщит вам, какие импортированные пакеты отсутствуют. Установите банки, которые предоставляют эти пакеты таким же образом. Пом из банки может дать вам подсказку, чего не хватает.
Это может означать установку большого количества jar-файлов, если ваши начальные jar-файлы имеют много зависимостей.
После того, как у вас есть список jar-файлов, которые можно установить вместе, вы можете либо создать компонент, используя протокол переноса, либо создать связки для отдельных пользователей во время сборки.
В любом случае вам стоит взглянуть на пакеты сервисных миксов. Он предоставляет OSGi готовые пакеты для многих библиотек.