Отключить перезагрузку в Grails 3.1 / springloaded
Я пытаюсь отключить автоматическую перезагрузку / перекомпиляцию в Grails 3.1, так как вместо этого я хотел бы использовать JRebel. Я считаю, что подпружиненный довольно ограничен, но, что более важно, постоянно терпит неудачу
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"
Я перепробовал все виды настроек, которые я нашел доступными, однако ни один из них не отключает перезагрузку при запуске команды run-app
я пытался
disable.auto.recompile=true
в командной строке, GRAILS_OPTS и в application.yml
Я попробовал
-noreloading
флаг как в командной строке, так и в GRAILS_OPTS.
Согласно документации, это должно https://grails.org/wiki/Auto%20Reloading
И ответ принят здесь как правильный, как я могу отключить перезагрузку в приложении Grails 3.0.0? тоже не работает.
Кому-нибудь удалось отключить автоматическую перезагрузку в Grails 3.1? (И успешно настроил Grails 3 с JRebel?)
3 ответа
В приложениях 3.x вы можете отключить Spring Loaded, добавив
grails {
agent {
enabled = false
}
}
в build.gradle
,
Ответ Берта правильный, связанный с вопросом -> как отключить автозагрузку.
Тем не менее, ответ Антона относится ко второму / связанному вопросу о том, как заставить Джребеля работать.
Теперь у меня есть рабочий пример, который работает с обоими
gradle bootRun -Pjrebel -> disable springloaded, using jrebel
gradle bootRun -> uses springloaded
а также
grails
grails> run-app
Мой конфиг представляет собой комбинацию
export GRAILS_OPTS="-javaagent:$JREBEL_HOME/jrebel.jar -Drebel.base=/Users/<username>/.jrebel"
и 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"
}
}
Спасибо @burt-beckwith и @anton-arhipov за ваш вклад!
Чтобы включить проект JRebel для Grails 3, необходимо настроить аргумент -javaagent с соответствующим путем jrebel.jar в файле build.gradle:
tasks.withType(JavaExec) { jvmArgs "-javaagent:jrebel.jar" }