Мне любопытно, знает ли кто-нибудь подробности о том, как такие структуры, как Grails или Play, обнаруживают изменения в коде и автоматически запускают перекомпиляцию без перезагрузки сервера приложений? Есть ли что-то специфическое для компилятора Groovy или его динамического характера, что позволяет это легко произойти?
Для фона у меня есть этап создания пользовательского кода во время моего процесса сборки, который я хотел бы иметь, чтобы иметь аналогичные возможности редактирования и обновления.
Спасибо заранее за любые указатели, даже если мне нужно просеять код, чтобы получить увеличенное изображение.
Изменить: Я должен уточнить, что я не собираюсь строить плагин Grails так же хорошо, как понимать, что нужно сделать для любого приложения в контейнере сервлетов. т.е. я использую Groovy, но не Grails.
Edit2: Похоже, что у Play есть определенный режим DEV, который позволяет эту горячую перезагрузку: http://www.playframework.org/documentation/1.1.1/main#lifecycle
Я понимаю, что JRebel выполняет расширенное управление версиями классов через загрузчики классов, но я предполагаю, что веб-фреймворки, такие как Grails или Play, не добираются до этого уровня.