Как обновить 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