Deshabilitar la recarga en Grails 3.1/cargado por resorte
jrebel spring-loaded (3)
Intento desactivar la recarga / recompilación automática en Grails 3.1 ya que me gustaría usar JRebel en su lugar. Encuentro que la carga de resorte es bastante limitada, pero lo más importante es que constantemente falla con
File /Users/engrun/Development/projects/grailsPoc/grails-app/controllers/grailsPoc/HelloController.groovy changed, recompiling...
java.lang.IllegalAccessException: Class org.springsource.loaded.ReloadableType can not access a member of class org.springframework.aop.framework.CglibAopProxy$ClassLoaderAwareUndeclaredThrowableStrategy with modifiers "public"
He intentado todo tipo de configuraciones que he encontrado disponibles, sin embargo, ninguna realmente deshabilita la recarga cuando se ejecuta el comando run-app
Yo he tratado
disable.auto.recompile=true
en la línea de comandos, GRAILS_OPTS, y en application.yml
He intentado el
-noreloading
bandera, ambos en la línea de comando y GRAILS_OPTS.
De acuerdo con los documentos, esto debería haber funcionado https://grails.org/wiki/Auto%20Reloading
Y la respuesta aceptada como la correcta aquí ¿cómo puedo desactivar la recarga en una aplicación Grails 3.0.0? tampoco funciona
¿Alguien ha logrado inhabilitar la recarga automática en Grails 3.1? (¿Y configuró Grails 3 con éxito con JRebel?)
En las aplicaciones 3.x puede desactivar Spring Loaded agregando
grails {
agent {
enabled = false
}
}
a build.gradle
Para habilitar el proyecto JRebel para Grails 3, necesita configurar el argumento -javaagent con la ruta correspondiente, el archivo jrebel.jar in build.gradle:
tasks.withType(JavaExec) { jvmArgs "-javaagent:jrebel.jar" }
La respuesta de Burt está relacionada con la pregunta correcta -> cómo deshabilitar la autorrecarga.
Sin embargo, la respuesta de Anton es relevante para el segundo / problema relacionado en hacer que Jrebel funcione.
Ahora tengo un ejemplo de trabajo, que funciona con ambos
gradle bootRun -Pjrebel -> disable springloaded, using jrebel
gradle bootRun -> uses springloaded
y
grails
grails> run-app
Mi configuración es una combinación de
export GRAILS_OPTS="-javaagent:$JREBEL_HOME/jrebel.jar -Drebel.base=/Users/<username>/.jrebel"
y build.gradle
rebel {
alwaysGenerate = false
showGenerated = true
//rebelXmlDirectory = "build/classes"
}
if (project.hasProperty(''jrebel'')) {
bootRun.dependsOn(generateRebel)
grails {
agent {
enabled = false
}
}
tasks.withType(JavaExec) {
jvmArgs "-javaagent:jrebel.jar"
jvmArgs "-Xverify:none"
}
}
Gracias @ burt-beckwith y @ anton-arhipov por su aporte!