从Grails 2.2以后默认run-app命令将启动Grails应用程序在一个单独的Java虚拟机。 这就是所谓的分叉的Tomcat Grails中的执行。 这样的类路径Grails构建系统和应用程序也不会干预,两个进程都有自己的内存设置。 我们可以看到在grails-app / conf / BuildConfig设置。 groovy在那里我们可以找到grails.project.fork.run配置属性。 当我们想要调试程序等IDE IntelliJ IDEA我们不能使用调试命令,因为这只会让我们调试Grails构建系统。 我们不会到达断点在我们的源代码。 但是Grails 2.3引入了一个额外的理由run-app命令:——debug-fork。 如果我们使用这个额外的参数JVM运行Grails应用程序将停止并监听一个调试会话连接,然后继续。 我们可以在IntelliJ IDEA配置调试配置(或另一个IDE)附着在等待Grails达成协议
假设我们有一个名为forked-debug的Grails应用程序,我们已经创建了一个项目的想法对于这个应用程序。 我们点击选择run/debug配置按钮并选择Edit Configurations…:

打开一个对话框,在这里我们可以改变Grails命令和设置JVM选项。 我们添加的选项——debug-fork到命令行字段在这个对话框中:

我们点击OK按钮以保存更改并关闭对话框窗口。 接下来我们可以运行Grails应用程序使用改变运行配置:

执行我们的应用程序,然后我们可以在控制台上看到程序开始监听5005端口

现在是时候再创建一个新的调试配置。 我们再次点击选择run/debug配置按钮并选择Edit Configurations…。 我们添加一个新类型的配置,所以我们点击+号添加一个remote类型

我们选择remote类型的对话框窗口显示了现在很多输入字段,我们可以保留默认值。 最好给出这个配置一个新的名字,例如Grails:forked-debug(debug):

我们单击OK按钮关闭对话框窗口。 Grails应用程序仍在等待一个debug会话,所以我们使用我们的新配置与debug按钮:

在控制台窗口中我们可以看到远程调试已经连接上5005端口, 然后可以在代码中打下断点,使用调试功能了。

我们也可以使用再命令行使用参数——debug-fork,然后使用IDEA调试配置附加到Grails应用程序的实例。
本测试用例使用 Grails 2.3.4 and IntelliJ IDEA 13编写。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?