Вопрос по java, osgi, maven, bndtools – Работа с Maven, OSGi и Bndtools

10

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

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

Конечно, у Maven есть свои преимущества, но стоит ли сочетать его с OSGi или специально с Bndtools?

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

Привет, Нейл. Спасибо за ответ на мой вопрос. Я ждал, чтобы что-то услышать от вас;) Bndtools оооочень хорош, и, на мой взгляд, нам не нужен Maven в сочетании с Bndtools. Инструмент собирает все ваши фляги и создает MANIFEST.MF, то же самое, что делает Maven, но мне не нужно указывать что-то в дополнительном файле pom. Вы абсолютно правы, когда говорите, что если мы используем оба, мы объявим зависимости дважды. Не могу дождаться вашего следующего релиза на Bndtools !!! Благодарность christian.vogel
Привет, Кристиан. Спасибо за ваш вопрос и за использование Bndtools. Я знаю, что поддержки Maven все еще немного не хватает, но сейчас мы активно работаем над этим. Были некоторые споры о том, как это сделать. Конечно, мы хотим избежать объявления зависимостей дважды, поэтому POM будет «мастером» для сборочных операций. В любом случае следите за новостями в списке рассылки, так как в начале июня у нас будет несколько объявлений. Пожалуйста, продолжайте давать свои отзывы и предложения. Благодарность Neil Bartlett

Ваш Ответ

3   ответа
8

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

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

Используя Tycho, вы поставляете целевую платформу из Eclipse в Maven, а затем она может разрешать все пакеты, просматривая ваш MANIFEST и целевую платформу. Файлы pom.xml действительно просты для проектов Tycho, так как они не содержат ваших зависимостей.

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

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

4

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

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

Я никогда не использовал Bndtools, поэтому не знаю, на что он способен. Тем не менее, я знаю, что в прошлом Maven очень хорошо нам помогал, и у него много поддержки со стороны промышленности. Oleksi
3, но некоторое время тоже работал с 2, и все работало просто отлично. Oleksi
Thx @Oleksi за твой ответ. Не знал, что с Maven есть возможность генерировать метаданные OBR. Но так как мы используем Bndtools, все эти вещи тоже сделаны. Процесс создания пакетов со всей информацией, а также создание метаданных OBR. christian.vogel
@ Oleksi: Насколько сложно указать весь материал OSGi для файла MANIFEST.MF в вашем pom-файле, поскольку он представляет собой простой XML? Потому что с помощью Bndtools вы можете писать классы POJO со специальной аннотацией, и ваш MANIFEST.MF автоматически генерируется во время процесса сборки, который просто принимает аннотации. НО я нашел интересное художественное произведение от Нила Бартлеттссылк Включение поддержки Maven на Bntools. Было бы здорово, если бы Нейл прочитал Вопрос здесь и мог высказать нам свое мнение:) christian.vogel
Какую версию maven вы используете? Aravind R. Yarram
0

кто придет к этому вопросу сейчас, прошло много времени с тех пор, как он был задан изначально. Работа Maven, о которой упоминал Нил Бартлетт, упомянутый выше, уже созрела, и теперь между Bnd / Bndtools и Maven довольно хорошая интеграция, включая разъем m2e для Eclipse / Bndtools.

Нил в соавторстве с Тимом Уордом выступил со слайд-шоу по этому вопрос

https: //www.slideshare.net/mfrancis/bndtools-and-maven-a-brave-new-world-n-bartlett-t-war

Похожие вопросы