Grails автоматически перезагружает новые действия контроллера




groovy reload (2)

Я задал тот же вопрос о github repo .

Кажется, что последний подпружиненный SNAPSHOT работает нормально .

Но он должен быть интегрирован в Grails - возможно, в следующем выпуске к сожалению :(

Я

  1. создал новый проект Grails 2.4.3
  2. созданный TestController
  3. set grails.reload.enabled = true в BuildConfig.groovy
  4. запускать приложение с помощью grails -reloading run-app

Код моего контроллера:

def index() {
    render "test"
}

Когда я меняю строковый test на test2 - я вижу на консоли (в Eclipse):

..................
|Compiling 1 source files

И после перезагрузки страницы я вижу test2 - хорошо.

Но когда я пытаюсь добавить новый метод:

def test3() {
    render "test3"
}

Я вижу:

Зачем? Почему нет даже URL-адреса?

Пример - действие не существует:

Интересно то, что когда я создаю совершенно новый контроллер, действие index нового созданного контроллера работает ...

РЕДАКТИРОВАТЬ

Через некоторое время я решил пойти с весенним сапогом и, по сути, там тоже не работает. Я думаю, что springloaded является проблемой здесь, потому что он не получает новый метод в @Controller


Решение, которое работает для меня:

1) Версии:

  • IDE: Intellij IDEA 14.1.3
  • JDK: jdk1.7.0_25
  • ГРАЙЛЫ: 2.5.0

2) На BuildConfig.groovy:

grails.reload.enabled = true
grails.project.fork = [
        test: false,
        run: false,
]

3) Первоначально мой код был составлен на grails 2.4.4, поэтому я обновился до 2.5.0. У меня не было проблем с изменением версии с помощью плагинов или чего-то еще. Я предполагаю, что это работает, потому что использует более поздние версии подпружиненных. шаги:

  • set-grails-версия 2.5.0
  • чистый
  • удалите работу с каталогом (просто чтобы быть уверенным, что я действительно не знаю, является ли это хорошей практикой)
  • скомпилировать и / или перейти на номер 4

4) Debug Idea с этой конфигурацией: run-app -reloading

Работает идеально, не разблокирована отладка, перезагрузка включена, нет ошибки в консоли после перезагрузки, и все точки останова работают даже после изменения кода!