Работа с Maven, OSGi и Bndtools

сегодня меня спросили, хорошо ли использовать Maven в нашем текущем приложении OSGi. Мы использовали Bndtools и его большой, так как это делает развитие как можно проще. BNDTOOLS использует OBR для поддержки других пакетов и разрешения зависимостей даже во время работы приложения.

поскольку Maven широко распространяется и настолько популярен,в основном все пытаются использовать его в средах OSGi. Для меня это два разных подхода. OSGi имеет свою собственную декларацию зависимости, манифест.MF и Maven a pom, где вы можете их объявить. Поэтому, если вы используете оба из них, вы объявите зависимости два раза. Конечно, вы можете использовать плагин Apache OSGi Maven, чтобы избежать этого, и Maven отвечает за создание манифеста.МФ. Но репозитории Maven на самом деле не заботятся о пакетах. Таким образом, может случиться, что вы ссылаетесь на банку без пакета.

конечно, есть преимущества использования Maven, но действительно ли хорошо сочетать его с OSGi или специально с Bndtools?

может ли кто-нибудь предоставить преимущества или недостатки! Есть у кого практический опыт использования обоих?

2 ответов


Я думаю, что если в значительной степени все, что вы делаете, сосредоточено вокруг Maven, то плагин Apache Felix Maven (кстати, также основанный на BND) - это путь.

в противном случае, если вы хотите использовать Maven, но в менее центральной роли,Затмение Тайхо имеет большой смысл. Tycho-это набор плагинов Maven.

используя Tycho, вы поставляете целевую платформу от Eclipse до Maven, а затем можете разрешить все пакеты, посмотрев на вашу МАНИФЕСТНУЮ и целевую платформу. ПФЛ.XML файлы очень просты для проектов Tycho, так как они не содержат ваших зависимостей.

Tycho, очевидно, очень ориентирован на затмение. Если вы не используете eclipse, я не думаю, что это имеет смысл, но иногда легче включить в существующий проект.

в любом случае, вы все равно можете использовать плагин Apache Felix Maven для создания метаданных OBR на этапе развертывания.


Я думаю, что использование Maven с проектами OSGi работает очень хорошо. Вы можете использовать Felix Maven BND плагин чтобы сделать вашу жизнь намного проще. При этом maven может автоматически генерировать метаданные OBR в локальном (или удаленном) репозитории maven. Это позволяет также обрабатывать репозиторий maven как OBR. Это делает рабочий процесс для проектов OSGi таким же, как и другие проекты, и все очень бесшовно и довольно просто в использовании.

мы используем его на работе, и Maven действительно делает вещи проще в использовании. Например, мы используем Maven для создания файлов проекта Eclipse, запуска автоматических сборок на сервере CI и создания метаданных OBR.