Я адаптирую существующий набор библиотек, собирая их как пакеты OSGi. Это многомодульный проект Maven с несколькими уровнями наследования и агрегации POM. В идеале конфигурация плагина должна размещаться только в родительских POM.
В проекте более 100 банок. Уже есть мега-пакет, который охватывает всю библиотеку и экспортирует все пакеты. Мои усилия направлены на то, чтобы сделать библиотеку более модульной, что является основной причиной того, что они изначально были в виде пакетов OSGi.
Основная проблема в том, что в этой библиотеке кошмар с разделением пакетов, и я не могу изменить структуру пакета. Я пытаюсь решить проблему с помощью Require-Bundle
, как рекомендовано в книге OSGi в действии, хотя в книге упоминается, что это не очень хорошая практика. Я попробовал рекомендовать использовать произвольный атрибут с именем "split" в Import-Package
для разделения частей пакета и импорта только определенных пакетов. Но из-за большого количества пакетов, предоставляющих один и тот же пакет, его оказалось слишком сложно настроить.
Мой вопрос заключается в том, как настроить директиву maven-bundle-plugin
<Require-Bundle>
, если это вообще возможно, для использования подстановочных знаков (например, *) в качестве формы указания ему использовать все зависимости Maven вместо того, чтобы вручную перечислять все пакеты. названия и версии; то есть есть альтернатива этому:
<Require-Bundle>lib-api; version=${project.version}</Require-Bundle>
который использует какое-то сопоставление подстановочных знаков и может быть помещен в родительский POM?
<Require-Bundle>
, являются зависимостями Maven, доступными во время сборки. - person Boj   schedule 06.11.2013