Я собираюсь начать работу над приложением, которое я хотел бы запустить в контейнере OSGi, например Virgo . Базовая платформа Virgo предоставляет множество интересующих меня зависимостей, например Spring Framework, но я также хотел бы использовать Spring Integration. Jar-файлы Spring Integration представляют собой готовые пакеты OSGi и доступны мне вместе со многими другими сторонними зависимостями в репозитории Ivy.
Чтобы сообщить контейнеру OSGi, что мой пакет зависит, скажем, от Spring Integration, мне нужно добавить соответствующие пакеты или пакеты в мой манифест - я знаю, как это сделать, и понимаю, как это работает.
Я хотел бы понять, как разрабатывать, разрешать, создавать и в конечном итоге развертывать сторонние пакеты, доступные в каком-либо репозитории (предпочтительно Ivy). В прошлом я делал это двумя способами:
- Добавить зависимости к целевой платформе, или в этом случае к хранилищу Virgo ext
- Сохраните копию зависимости в моей рабочей области, экспортируйте ее как часть сборки
Ни одно из этих решений не кажется масштабируемым или особенно элегантным.
Я заинтересован в использовании Virgo 3.0.0 или Equinox, и моя среда разработки - Eclipse, если другой контейнер OSGi или среда разработки сделают мою жизнь проще, я рад переключиться.
Чтобы прояснить этот кристал, я бы хотел знать:
- Как мне работать с пакетами OSGi во внешнем репозитории (например, пакеты живут в Ivy)?
- Как собрать и развернуть свой пакет вместе с необходимыми внешними зависимостями?