Ключом к тому, чтобы заставить работать механизм обновления karaf, является развертывание из maven вместо использования папки развертывания. Установите свой пакет следующим образом:
install -s mvn:groupid/artifactID/version
or
install -s mvn:groupid/artifactID/version/typeOfMavenArtifact
Второй полезен для установки, например, артефактов war/wab. Полную спецификацию протокола maven можно найти здесь.
Тогда Караф знает, откуда взялся сверток. Вы также можете проверить это, используя la -u
. Это заставляет karaf показывать местоположение обновления, которое теперь должно быть maven uri. Вы не заметите, что все пакеты karaf имеют такое расположение обновлений.
Теперь, когда вы создадите новую сборку своего проекта с помощью maven, она попадет в ваш локальный репозиторий maven. Затем просто запустите
update <bundleid>
Это заставляет karaf проверять местоположение обновления (в вашем случае это локальное репозиторий maven) и перезагружать оттуда пакет.
Вы можете еще больше автоматизировать это, используя
dev:watch
или для карафа 3+
bundle:watch
Это заставит karaf проверять ваш репозиторий maven на наличие изменений в развернутых пакетах SNAPSHOT и автоматически повторно развертывать их.
Это также очень хорошо работает вместе с удаленной отладкой. Использовать
export KARAF_DEBUG=true
до начала карафа. Затем он будет прослушивать отладчик на порту 5005.
Затем вы можете запустить сеанс удаленной отладки eclipse на том же порту и красиво отладить свое приложение в karaf. Это работает очень хорошо, даже если вы измените свой пакет, используя один из описанных выше подходов. Таким образом, вы можете отлаживать, находить свою проблему, изменять код, собирать и продолжать отладку с измененной версией.
Я также часто использую это, когда работаю над самой кодовой базой karaf, так как это также работает для большинства собственных пакетов karaf.
person
Christian Schneider
schedule
17.07.2014