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