Как обновить Bundle в Apache Felix OSGi Framework

У меня проблемы с обновлением моего пакета из gogo shell, у меня есть gogo shell работает на терминале. Мои связки там активны.

Теперь, когда я делаю изменения в коде, какие шаги необходимы, чтобы передать эти изменения в работающую среду OSGi?

Я запустил обновление <bundleId> но ничего не происходит Он по-прежнему работает на той же версии, которая была скомпилирована, когда я запустил фреймворк. Перед командой обновления я открыл другой терминал и запустил mvn clean install (Я использую maven-bundle-plugin вместе с pax-construct).

2 ответа

Решение

При работе с Maven мой рабочий процесс проверки обновленного кода включает два терминала.

  • После обновления кода я запускаю mvn install из проекта, который будет строить фактический комплект. Следите за абсолютным местоположением в вашей системе, где построен целевой пакет.
  • В работающей среде я обновляю пакет, давая ему URL; что-то вроде update 25 file:///Users/you/project/bundle/target/bundle.jar

Если вы можете не использовать Maven и Pax Runner, вы также можете взглянуть на bndtools, который является плагином Eclipse. Затем вы можете взять пакеты, которые собрал bndtools, и запустить их с Pax Runner.

Еще одна попытка через локальное репо OBR:
- предположим, что артефакт называется test-api, затем
а)g! deploy test-api развернуто под id: 25
после дальнейших изменений в коде и mvn clean install делать:
1)g! update 25
2)g! refresh
если нет результата, то до шага 1) попробуйте g! repos refresh file:///c:/Users/.m2/repository.xml обновить локальное репо OBR

Другие вопросы по тегам