领先一步
VMware 提供培训和认证,助您加速进步。
了解更多在最近发布的 SpringSource Tool Suite 2.5.1 中,我们对 Groovy 调试进行了重大改进。一直以来,都可以使用 Eclipse 对 Java 的标准调试支持来调试 Groovy 应用程序,但由于 Groovy 与 Java 的语言差异及其元编程,许多调试功能一直未能正常工作。
这篇文章中的所有截图都来自一个简单的 Grails 应用程序,因此此处的调试功能隐含地利用了动态添加的 Groovy 方法和属性。
通过增强的 Groovy 调试支持,“步入”命令的运行方式与您预期的一模一样。过去,由于 Groovy 大量使用反射和缓存的调用站点,有时会步入不感兴趣的堆栈帧,而可能会步过感兴趣的堆栈帧,这使得调试体验有时令人不快。
现在,可以步入 Groovy 方法和闭包,同时忽略所有不感兴趣的 Groovy 运行时和框架调用
可以通过 Groovy -> 调试器 -> 扩展调试支持首选项页面禁用此支持
当调试器停止在 Groovy 堆栈帧上时,显示视图和表达式视图现在可以识别 Groovy 语法,并完全访问 Groovy 动态添加的方法和属性。
在显示视图中
在表达式视图中
甚至在编辑器中(通过选择代码片段并使用 CTRL-Shift-I 键盘快捷键)
如果您需要禁用此支持,也可以通过 Groovy -> 调试器 -> 扩展调试支持首选项页面进行操作
您在调试应用程序中可以做的任何事情都应该可以通过显示视图实现,嗯,几乎所有事情,除了定义新的类、方法、属性和闭包。Groovy 是一种大型语言,并且在不断发展。可能还有其他尚未支持的语言特性,但基本功能,包括变量定义、循环、条件语句以及 gstring 列表和映射字面量,都可以在评估中使用。
例如,可以添加 Grails 领域类的新实例
并遍历集合
Groovy 元对象协议 (MOP) 提供了一种结构化的方式来改变 Groovy 的语义,通过让最终用户控制方法调用和属性访问。新的 Groovy 调试支持的核心依赖于 Groovy MOP 进行代码评估。其工作原理如下:
这使我们几乎可以从正在运行的 STS 实例完全控制调试的应用程序。我们惊讶地发现 Groovy MOP 功能强大,足以用于在远程应用程序上执行 Groovy 脚本。
如果您有评论、功能请求或遇到问题,请为此提出 Jira 问题或在SpringSource Tool Suite 论坛上提及。