Эффективный процесс разработки Karaf

Я хотел бы более эффективно разрабатывать пакеты OSGi, используя karaf.

мой идеальный процесс будет:

  1. Караф работает на заднем плане
  2. развернуть все мои пакеты и зависимости (скрипт)
  3. заставить karaf следить за моим локальным репозиторием maven на предмет любых изменений в моих пакетах
  4. упаковать и установить отдельные артефакты и позволить Карафу перезагрузить их

На данный момент я использую сборку karaf для производства, но это не позволяет мне смотреть локальное репозиторий maven, поэтому каждый цикл сборки требует остановки и сборки полного дистрибутива karaf и его повторного запуска, что медленно и неэффективно.

У меня также есть функция, описывающая все зависимости, было бы здорово, если бы я мог использовать ее повторно вместо того, чтобы объявлять все зависимости вручную.

любые предложения, как это сделать с karaf?

p.s. можно ли выполнить этот процесс с помощью Gradle?


person Gadi    schedule 20.06.2017    source источник


Ответы (1)


Самый простой способ — запустить karaf начисто и установить свою функцию. Конечно, вы можете заскриптовать эту часть.

Затем вы вводите bundle:watch *. Это следит за изменениями в пакетах SNAPSHOT в вашем локальном репозитории maven.

Если теперь вы выполните mvn clean install для отдельного проекта пакета, пакет автоматически обновится.

Вы также можете запустить karaf с karaf debug. Это запустит karaf с включенной удаленной отладкой. Таким образом, вы можете просто выполнить сеанс отладки с помощью eclipse для порта 5005. Это также хорошо работает с пакетом: смотрите выше. Во время отладки вы можете изменить свой код и запустить mvn clean install в проекте пакета и продолжить отладку с измененным пакетом. Конечно, вы теряете состояние измененного пакета, но остальная часть системы остается неизменной.

Имейте в виду, что пакет: просмотр работает только в том случае, если ваши пакеты не развернуты в системную папку в karaf. Поэтому, если вы запустите собственный дистрибутив karaf, ваши пакеты не будут обновлены. Это можно обойти, просто удалив эти файлы из системного каталога, поскольку затем они будут извлечены из локального репозитория maven. Это очень удобно, когда вы работаете над собственным кодом karaf.

person Christian Schneider    schedule 20.06.2017
comment
Спасибо! так что, если я использую установку функции, это также будет работать с часами? мне не нужно идти и устанавливать каждый пакет вручную? - person Gadi; 20.06.2017
comment
Я не принял этот ответ, потому что не могу заставить его работать. watch *, похоже, не перезагружает пакеты, развернутые в локальном репозитории maven. - person Gadi; 03.07.2017
comment
Он перезагружает только версии SNAPSHOT. Возможно, вы использовали фиксированные версии? - person Christian Schneider; 03.07.2017
comment
‹версия›0.5-SNAPSHOT‹/версия› - person Gadi; 03.07.2017
comment
Ваше локальное репо находится в нестандартном месте? - person Christian Schneider; 03.07.2017