2009-10-15 2 views
2

Я создаю приложение для работы в контейнере OSGi. Я использую Maven и Maven Bundle Plugin от Apache Felix, чтобы настроить проявки OSGi для своих собственных модулей, и это отлично работает.Как добавить сторонние пакеты OSGi в пакет развертывания с Maven?

Теперь я развертываю свои пакеты в контейнере OSGi вместе с несколькими сторонними библиотеками. Некоторые из них уже OSGi-fied, когда я получаю их из репозитория Maven, другие, я хочу конвертировать в OSGi-совместимые банки. Я хочу создать проект Maven, который собирает все зависимости и помещает каждый в свою собственную банку OSGi. Конечная цель - собрать эти банки и свою собственную в сборку, которую я могу использовать в качестве отдельного пакета развертывания.

Я знаю как convert standard jars to OSGi jars, и у меня есть (несколько хакерский) подход к merge multiple OSGi bundles, даже если я, вероятно, не должен. Но если у меня есть зависимость, которая уже прекрасна, и я просто хочу скопировать ее из репо в мою сборку, какую часть Maven я использую? Плагин пакета неправильный, он испортил манифесты, если зависимость уже совместима с OSGi. Использую ли я плагин зависимостей, плагин сборки или что-то еще?

У меня такое чувство, что я пропускаю что-то очень простое здесь.

ответ

1

Мы используем много библиотек, которые не являются OSGified поставщиком и которые недоступны в репозитории Spring bundle. У нас также есть много из них, и мы хотим, чтобы все они были бесполезны. Для этого мы создали 2-слойную установку в Maven:

  1. проекты Индивидуального Maven, которые загружают или содержат (как сфера «системы» зависит) 3-й LIB партии в вопросе, и OSGify их с помощью Apache Felix bundle plugin
  2. Один контейнерный проект, который имеет зависимость от всех этих небольших проектов и делает их сборку с использованием ядра assembly maven plugin. Этот POM также использует цель maven, чтобы убедиться, что все на месте.

Как только он превращается в сборку (наш файл tar), мы развертываем его на наших серверах. Мы сделали еще один шаг и использовали эту сборку сторонних библиотек в качестве целевой платформы для нашей среды сборки Eclipse. Но это может быть для вас неактуальным.

+0

Шаг 2 - это то, о чем я просил, и шаг 1 также весьма полезен. Благодарю. –

0

Вы можете получить OSGi-дружественные версии многих распространенных артефактов из репозитория Spring bundle. Поэтому вам, возможно, не придется делать это самостоятельно.

См. Подробности how to configure репозиторий для Maven.

(обновит некоторые идеи для тех, которые не доступны в виде расслоения уже)

+0

Нет, я знаю, как их получить. Мне было интересно, как включить их в пакет развертывания и/или тестовую среду автоматически с помощью Maven. –

+0

извините, я думаю, что я не совсем понимаю, что вы пытаетесь сделать, тогда –

3

Вы должны взглянуть на инструменты PAX? В частности, Pax-Runner и pax-construct ... Они не только дают вам хороший шаблон для начала, но и решают большинство проблем, о которых вы упомянули бесплатно.

+0

Я также рекомендую набор инструментов Pax. –

+0

Ничего себе, они наверняка выглядят красиво, но на этот раз мне придется отложить это. Я просто чувствую себя хорошо с Maven, и на данный момент я должен откладывать, а не получать больше инструментов. Отличный намек, во всяком случае! –

Смежные вопросы