在 Grails 3.1 / springloaded 中禁用重新加载
Disable reloading in Grails 3.1 / springloaded
我想在 Grails 3.1 中禁用自动 reload/recompiling,因为我想改用 JRebel。
我发现 springloaded 相当有限,但更重要的是
经常失败
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"
我已经尝试了所有可用的设置,但是,none 实际上在 运行 执行 运行-app 命令
时禁用了重新加载
我试过了
disable.auto.recompile=true
在命令行上,GRAILS_OPTS,在 application.yml
中
我试过了
-noreloading
标志,在命令行和GRAILS_OPTS.
根据文档,这应该有效
https://grails.org/wiki/Auto%20Reloading
这里的答案被接受为正确答案
也不起作用。
有人真正成功地禁用了 Grails 3.1 中的自动重新加载吗?
(并使用 JRebel 成功配置了 Grails 3?)
在 3.x 个应用中,您可以禁用 Spring 通过添加
加载
grails {
agent {
enabled = false
}
}
至build.gradle
。
要为 Grails 3 项目启用 JRebel,您需要使用 build.gradle 文件中 jrebel.jar 的相应路径配置 -javaagent 参数:
tasks.withType(JavaExec) { jvmArgs "-javaagent:jrebel.jar" }
Burt 对问题的回答是正确的 -> 如何禁用自动重新加载。
但是,安东的回答与让 Jrebel 工作的 second/related 问题相关。
我现在有一个工作示例,它适用于
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 的意见!
我想在 Grails 3.1 中禁用自动 reload/recompiling,因为我想改用 JRebel。 我发现 springloaded 相当有限,但更重要的是
经常失败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"
我已经尝试了所有可用的设置,但是,none 实际上在 运行 执行 运行-app 命令
时禁用了重新加载我试过了
disable.auto.recompile=true
在命令行上,GRAILS_OPTS,在 application.yml
中我试过了
-noreloading
标志,在命令行和GRAILS_OPTS.
根据文档,这应该有效 https://grails.org/wiki/Auto%20Reloading
这里的答案被接受为正确答案
有人真正成功地禁用了 Grails 3.1 中的自动重新加载吗? (并使用 JRebel 成功配置了 Grails 3?)
在 3.x 个应用中,您可以禁用 Spring 通过添加
加载grails {
agent {
enabled = false
}
}
至build.gradle
。
要为 Grails 3 项目启用 JRebel,您需要使用 build.gradle 文件中 jrebel.jar 的相应路径配置 -javaagent 参数:
tasks.withType(JavaExec) { jvmArgs "-javaagent:jrebel.jar" }
Burt 对问题的回答是正确的 -> 如何禁用自动重新加载。
但是,安东的回答与让 Jrebel 工作的 second/related 问题相关。
我现在有一个工作示例,它适用于
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 的意见!