【问题标题】:How to debug grails applications如何调试 grails 应用程序
【发布时间】:2016-09-26 13:06:57
【问题描述】:

我目前正在参与开发基于 grails(版本3.12)的应用程序。不幸的是,我不熟悉框架周围的生态系统。我想修复代码中存在的一些错误,但我不清楚如何调试应用程序。

我读到远程调试是 grails 应用程序的最佳选择。这实际上是可行的:我在 intellij 中添加了一个“远程”执行配置文件,并像这样启动了 grails:

export GRAILS_OPTS="agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
grails run-app

但是,这确实具有我必须在 intellij 中启动遥控器两次的效果。我认为这是因为 grails 有两个运行的 JVM 分支(一个用于编译 / 等,一个用于执行)。此外,很明显,每当源代码发生更改时,都会派生一个新的 JVM。

我的问题是:如何通过配置将 grails 选项传递给正确的 JVM 进程?

我发现了一个较旧的类似线程here。然而,这确实适用于 grails 2 而不是 grails 3。特别是,buildConfig.groovy 已经消失并添加了类似

grails.project.fork = [
    // ...
    run: [maxMemory:1024, minMemory:64, debug:false, maxPerm:256, jvmArgs: '..arbitrary JVM arguments..']
    // ...
]

到build.gradle 会引发异常。

【问题讨论】:

    标签: grails


    【解决方案1】:

    有几种方法可以满足您的要求。一种不需要更改默认生成的构建文件或设置任何环境变量的方法是像这样运行应用程序:

    ./gradlew bootRun --debug-jvm
    

    这将导致启动暂停,直到您连接远程调试器。我经常这样做。

    另一个选项是打开Application.groovy,右键单击并选择“调试...”。

    【讨论】:

    • 这些方法都不需要设置任何特殊的环境变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多