example - Cambia la versión Groovy de Grails
groovy grails ejemplos (1)
¿Cómo puedo cambiar la versión groovy utilizada por Grails 1.3.7 a groovy 1.7.9?
Estoy teniendo este problema en una aplicación Grails 1.3.7 en la que cada minuto un proceso de Cuarzo ejemplifica unos 500 objetos nuevos como este:
class Foo{
Bar bar
Date d = new Date()
int v
}
def f = new Foo(bar:b, v:value)
Lo que estoy observando es que en cada ejecución, esto toma más tiempo. Al principio, lleva unos nanosegundos, pero cuando la aplicación falla con un error PermGen sin memoria, este proceso toma, a veces, más de 10 segundos ... ¡para crear una instancia de un objeto!
He tomado algunos Heap Dumps y descubrí que un CallSiteClassLoader estaba tomando una enorme cantidad de memoria de objetos previamente instalados. Después de leer este hilo , decidí cambiar directamente el tarro groovy en mi GUERRA. Ahora la aplicación está funcionando sin problemas como debería, y nuevamente, después de algunos Heap Dumps, parece que no hay pérdidas de memoria.
Pero cada WAR que genero, sigue viniendo con groovy 1.7.7 y tengo que cambiarlo manualmente.
¡Gracias!
Puede descomentar mavenCentral()
(en repositorios ) y agregar dependencia
compile ''org.codehaus.groovy:groovy-all:1.7.9''
(en dependencias ) en BuildConfig.groovy.
No sé si esto es recomendado. Al menos, la compilación empaquetará su aplicación con maravilloso 1.7.9 como lo hace manualmente ahora. grails run-app
todavía usará 1.7.7, supongo, pero probablemente no sea un problema, ya que puede reiniciar antes de encontrarse con problemas de permgen durante el desarrollo.
Elegí permanecer en Grails 1.3.6 hasta que se publique una versión de Grails con Groovy 1.7.9 o superior.