2012-05-18 5 views
1

Возможно ли сохранить мой проект OSGi (который состоит из нескольких пакетов) в один исполняемый файл, что-то вроде файла .exe, поэтому я могу скопировать и запустить его на любой ПК с JVM. Я знаю, что обычный метод заключается в том, чтобы открыть командную строку и установить необходимые пакеты/jar-файлы по одному. Но так как в моем проекте содержится немало пакетов, этот метод кажется утомительным.Как создать исполняемую версию моего проекта OSGi?

Thanx in Advance.

ответ

0

Eclipse имеет понятие о продуктах. Вы можете создать продукт из существующих пакетов, а затем ваш продукт может быть экспортирован как исполняемый файл. Подробнее о продукте см. В учебнике Eclipse RCP от http://www.vogella.com/articles/EclipseRCP/article.html

В учебном руководстве представлены приложения RCP Eclipse, но вам не нужно все, оттуда - можно создать продукт без создания всего приложения Eclipse.

Это ограничивает ваши возможности, так как вы более или менее привязаны к Eclipse Equinox как время выполнения OSGi, но для создания исполняемого продукта из него может быть приемлемым компромисс.

2

Вы можете определенно сделать лучше, чем устанавливать пакеты один за другим, даже если вы не дошли до единственного «исполняемого изначально» архива, такого как .exe. Существует множество коммерческих и open source OSGi-приложений, которые поставляются как zip-архивы; пользователь распаковывает архив, а затем либо вызывает java -jar some.osgi.jar, либо запускает сценарий оболочки.

Существует несколько способов, с помощью которых OSGi может решить, какие пакеты установить. Некоторые из них относятся к среде OSGi (например, Equinox или Felix), а другие - более общие. Если вы используете Equinox, вы можете создать файл config.ini и поместить его в папку с именем configuration на том же уровне, что и ваш баннер OSGi. Перечислите все пакеты, которые вы хотите запустить, в свойстве osgi.bundles. Файл config.ini может отображать все пучки для запуска, а также любые other configuration properties, которые могут вам понадобиться.

Eclipse также позволяет вам определить минимальный набор связок в config.ini и использовать configurator, чтобы запустить все в папке плагинов. Аналогично, если вы используете Felix, все пакеты в auto-deploy directory будут автоматически запущены. Вы также можете посмотреть Felix File Install, что позволяет вам отбрасывать пакеты в контролируемую папку для их установки (как только установлен FileInstall). Несмотря на имя, FileInstall работает как с Equinox, так и с Felix.

0

Thanx. Следуя приведенным выше ответам, я встретил главу 9 этой книги. http://my.safaribooksonline.com/9780321561510/ch09#ch09 Прошла учебник по экспорту проекта через конфигурацию продукта. Это именно то, что мне нужно. :)

2

Это похоже на creating a complete OSGi application with Felix & Maven - Sling Launchpad Plugin можно использовать для создания исполняемого файла или файла war, который содержит конкретный набор связок. Если вы еще не используете Maven, это не так просто, как «сохранение вашего проекта в исполняемый файл», но вы, вероятно, можете адаптировать механизмы генерации файлов jar в свою среду.

0

Если вы используете bnd (tools), вы можете экспортировать проект в исполняемую банку либо из графического интерфейса bndtools, либо через командную строку bnd (bnd package xyz.bndrun; java -jar xyz.jar). Полученный файл jar содержит все пучки, пусковую установку и фреймворк.