grails groovy reload spring-loaded grails-2.4

Grails vuelve a cargar automáticamente nuevas acciones de controlador



groovy reload (3)

He hecho la misma pregunta en github repo .

Parece que el último SNAPSHOT con resorte funciona bien .

Pero debe estar integrado en Grails, desafortunadamente en la próxima versión :(

He

  1. creó el nuevo proyecto Grails 2.4.3
  2. creado TestController
  3. establecer grails.reload.enabled = true en BuildConfig.groovy
  4. ejecutar la aplicación con grails -reloading run-app

Mi código de acción de controlador:

def index() { render "test" }

Cuando cambio la test cadena a test2 , veo en la consola (en Eclipse):

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

Y después de volver a cargar la página, veo test2 - ok.

Pero cuando trato de agregar un nuevo método:

def test3() { render "test3" }

Ya veo:

¿Por qué? ¿Por qué no hay ni siquiera la url?

Ejemplo: la acción no existe:

Lo interesante es que cuando creo un controlador completamente nuevo, la acción de index del controlador recién creado funciona ...

EDITAR

Después de un tiempo, decidí ir con la bota de resorte y, de hecho, tampoco funcionaba. Creo que Springloaded es el problema aquí porque no recoge un nuevo método agregado en @Controller


Solución que funciona para mí:

1) Versiones:

  • IDE: Intellij IDEA 14.1.3
  • JDK: jdk1.7.0_25
  • GRAILS: 2.5.0

2) En BuildConfig.groovy:

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

3) Originalmente, mi código se compiló en Grails 2.4.4, así que actualicé a 2.5.0. No tuve problemas con el cambio de versión con complementos ni nada. Creo que esto funciona porque usa versiones posteriores de la primavera. Pasos:

  • set-grails-versión 2.5.0
  • limpiar
  • eliminar el trabajo de directorio (solo para estar seguro, realmente no sé si esto es una buena práctica)
  • compilar y / o ir al número 4

4) Debug Idea con esta configuración: run-app -reloading

Funciona perfecto, sin depuración con bifurcación, recarga habilitada, sin error de consola después de volver a cargar y todos los puntos de interrupción funcionan incluso después de los cambios de código.