Как было написано в предыдущих ответах, у вас есть два варианта, если вы хотите использовать дополнительные библиотеки в ваших пакетах:
- встраивание библиотечных jar-файлов в пакет, в котором они будут использоваться,
- создание действительного пакета OSGi из библиотеки.
Первый подход проще, потому что вам нужно только скопировать библиотечные jar-файлы (и все их зависимости) в пакет (например, в корневой каталог), а затем добавить их в элемент Bundle-Classpath
в MANIFEST.MF
(см. здесь ). Однако при этом вы должны помнить, что эта добавленная библиотека будет видна только в комплекте, в который она встроена (поэтому повторное использование библиотеки ограничено). Вы всегда можете добавить пакеты из этой библиотеки к элементу Export-package
в MANIFEST.MF
, чтобы сделать его видимым для других пакетов, но это далеко не элегантное решение (однако оно будет работать).
Чтобы сделать его видимым для других пакетов, вы должны использовать второй подход , то есть создать пакет OSGi из библиотеки (есть инструменты, которые могут помочь вам в этом, в том числе в Eclipse). Однако для более сложных библиотек этот подход может быть сложнее (из-за зависимостей и подхода к загрузке классов в OSGi).
Так что, если вы хотите использовать библиотеку только в одном комплекте, я предлагаю использовать первый подход (его легче реализовать). Если вы хотите использовать эту библиотеку во многих пакетах вашего приложения, вам следует рассмотреть второй подход.