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