Как конвертировать jar в OSGi-комплект, используя eclipse и bndtools - PullRequest
11 голосов
/ 22 марта 2012

Я ищу пошаговое руководство по конвертации jar в комплект OSGi с помощью плагина eclipse bndtools. Я знаю, что это можно сделать с помощью bnd с помощью командной строки, но было бы неплохо узнать, как сделать то же самое с помощью IDE.

Я могу что-то упустить, но этот урок объясняет только, как создать проект с нуля.

Ответы [ 3 ]

24 голосов
/ 22 марта 2012

Следуйте статье Создайте подключаемые модули Eclipse (OSGi-комплекты) из стандартного jar , чтобы добиться этого. Хотя этот подход не использует Bnd, но вы сможете достичь того, чего хотите.

Короче говоря, вы можете сделать следующее:

  1. Создание нового проекта плагина по выбору File-> New -> Project...-> Plug-in Development -> "Plug-in from Existing JAR Archives"

  2. Выберите банки, которые вы хотите иметь в этом новом плагине (комплект). Введите другие данные плагина (имя, версия, идентификатор и т. Д.).

  3. Снимите флажок Unzip the JAR archive into the project. Нажмите, затем закончите.

Снятие флажка Unzip the JAR archive into the project, предотвращает извлечение файлов классов из Jar, которое обычно не требуется.

РЕДАКТИРОВАТЬ: Экспортировать ваш пакет, чтобы установить его в среду выполнения OSGi. Выберите свой комплект и выберите File -> Export -> Plug-in Development -> "Deployable plug-ins and fragment".

Снимите флажок для Экспорт источника.

10 голосов
/ 23 марта 2012
  1. Просто создайте новый проект в bndtools для всех (или связанных) jar-файлов, которые вы хотите преобразовать.
  2. Дайте этому проекту имя, которое будет префиксом символического имени пакета преобразованногобанки.Например, если ваша компания acme, вызовите проект 'com.acme'
  3. Загрузите jar и исходники в каталог jar
  4. Создайте новый дескриптор пакета с записью -classpath (File / New/ Bundle Descriptor), например:

-classpath: jar/htmlcleaner-2.2.jar, jar/htmlcleaner-2.2-src.zip

Export-Package: org.htmlcleaner.*;version=1.0

Import-Package: org.apache.tools.ant;resolution:=optional,\

org.jdom;resolution:=optional,\

*

Bundle-Version: 2.2.1

После сохранения этого файла, посмотрите в сгенерированную директорию, вуаля, ваш пакет!Вы можете повторно использовать один и тот же проект для любого количества пакетов, которые хотите обернуть.

Затем вы можете отправить пакет в одно из хранилищ.Выберите файл bnd.bnd и выберите Release Bundle с контекстным меню.


Редактировать: NB Вы не можете напрямую использовать проект 'wrap' из других проектов, так как для этого Eclipse требуется дерево исходного кода.Для этого есть 2 обходных пути:

  • Поместите упакованный пакет в репозиторий и используйте его оттуда (как описано выше)
  • Распакуйте исходное дерево в папку src проекта

https://github.com/bndtools/bndtools/wiki/How-to-Wrap-Bundles

1 голос
/ 16 января 2014

В дополнение к существующим ответам вас может заинтересовать это сообщение в блоге , в котором объясняется, как создать этот комплект OSGi из банки с «чистым maven», т.е. без необходимости использования конкретной IDE и / илиплагины.(Точнее говоря, под капотом он еще раз выполняет настоящую работу;))

...