2013-03-31 2 views
9

Я хочу создать совместимое с OSGi многомодульное приложение, в котором после компиляции у меня есть все необходимые пакеты из 3-х папок. Я использую maven-bundle-plugin и maven-scr-plugin для создания пакетов.Использование Maven для создания OSGi-приложения

Я хочу запустить это приложение в контейнере osgi (Equinox) с помощью одной команды, используя сценарий, мы надеемся. Для этого я считаю, что мне нужно создать файл конфигурации config.ini, в котором перечислены все пакеты в приложении.

Есть ли способ генерировать это на время компиляции Maven? Или есть лучший способ получить все пакеты в некоторой структуре папок, чтобы приложение можно было запустить сразу?

+0

Если это только для разработки, вы можете использовать Pax Construct (https://ops4j1.jira.com/wiki/display/paxconstruct/Pax+Construct), который является PaxRunner и некоторыми другими лакомствами для Maven. –

ответ

4

Я написал плагин maven, который по умолчанию создает папку dist под целью, которая содержит готовый к использованию равноденствие со всеми зависимостями maven. Equinox завернут YAJSW, чтобы вы могли использовать созданный пакет равноденствия в качестве тестового сервера. Пожалуйста, ознакомьтесь с страницей использования плагина: http://www.everit.org/eosgi-maven-plugin/

Документация немного бедна, но на случай, если у вас возникли вопросы, пожалуйста, не стесняйтесь спрашивать.

Короткий шаг за шагом руководство:

  • Заканчивать https://github.com/everit-org/osgi-samples-simple (пользователь: гость, пароль: гость)
  • Run "МВН установки". Это создаст тестовую среду равноденствия в target/eosgi -estests-dist/equinox в модульных тестах/ядре.
  • Если вы хотите иметь простой сервер равноденствия без модулей тестирования, вы можете запустить команду «mvn eosgi: dist» в модуле tests/core.

Edit:

Новая поваренная книга будет доступна в ближайшее время, что содержит гораздо более подробные шаг за шагом руководство. URL-адрес http://cookbook.everit.org

10

Вы можете использовать maven-pax-plugin с PaxRunner в своем проекте OSGi Maven. Проверьте это tutorial.

<plugin> 
<!-- Pax Runner Maven plugin --> 
<groupId>org.ops4j</groupId> 
<artifactId>maven-pax-plugin</artifactId> 
<version>1.4</version> 
<configuration> 
     <!-- Pax Runner version --> 
     <runner>1.4.0</runner> 
     <!-- OSGi framework type (equinox, felix, knopflerfish) --> 
     <framework>equinox</framework> 
     <provision> 
      <param>--log=debug</param> 
      <param>--workingDirectory=target/runner</param> 
      <!-- bundles that should be installed --> 
      <param>mvn:org.osgi/org.osgi.compendium/[email protected]</param> 
      <param>mvn:org.apache.felix/org.apache.felix.eventadmin/[email protected]</param> 
      <param>mvn:org.apache.felix/org.apache.felix.log/[email protected]</param> 
     </provision> 
</configuration> 
</plugin> 
+0

Возможно ли иметь несколько конфигураций, то есть один для felix и один для равноденствия? Я попытался установить структуру через свойство maven, но felix и equinox имеют разные зависимости (например, для декларативных сервисов). – mike

+0

вы можете использовать профили maven –

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