OSGI Apache felix- поддержка горячего развертывания
Немного предыстории: мы используем реализацию OSGI в Apache Felix для нашей веб-разработки (Adobe CQ5, Inturn построен на Apache Felix). У нас есть несколько наших собственных пакетов (около 10), и каждый из них настроен как проект.
Проблема: в течение жизненного цикла разработки мы вносим изменения в пакет, а затем используем сценарий ant для создания пакета и развертывания его в felix. Мне интересно, есть ли какой-нибудь способ включить горячее развертывание изменений, которые я делаю в режиме разработки, которые бы сэкономили время разработчиков.
Основываясь на моих исследованиях, мы можем использовать установку файла felix, которая будет отслеживать папку (-ы) на наличие изменений в любых пакетах и может развертывать их автоматически. Но это опять-таки означает, что мне нужно запустить ant-скрипт для сборки файла jar и переместить его в папку автоматического развертывания, за которой следит установка. Есть ли лучший / быстрый способ добиться этого? В настоящее время сценарию требуется около 10 секунд (приблизительно) для компиляции классов, создания специальных файлов метаданных osgi, объединения классов + метаданных в новый файл jar. Есть ли какой-нибудь способ сделать горячее развертывание, чтобы любые изменения, которые я вносил в файл Java, автоматически отражались в комплекте?
Большое спасибо
2 ответа
Мы попробовали DCEVM, и он делает почти все, что мы ожидали, чтобы сократить жизненный цикл разработки + исправления + тестирования. Я рекомендую это всем разработчикам Java, использующим большие веб-приложения. Спасибо за ваше предложение о bndtools Нейл.
Если вы разрабатываете свой проект в Bndtools и запускаете из встроенного модуля запуска, то Bndtools немедленно обработает сборку любого измененного вами Java-кода и развертывание обновленного пакета в среде выполнения. Это приводит к чрезвычайно быстрому циклу кода / тестирования / отладки / исправления.
Сказав это, я поражен тем, что для компиляции и сборки ваших пакетов сейчас требуется 10 секунд! Вы строите на чрезвычайно древнем компьютере? Или в комплекте несколько гигабайт по размеру?