eclipse - Eclipse 中对 Grails Web 应用程序的调试支持很差

标签 eclipse groovy grails

我是一名日常 C#/ASP.NET MVC/Visual Studio 用户,我刚刚在 JAVA/GRails/Eclipse 中启动了一个项目,但我发现使用 Eclipse 的调试功能非常困难,并且与 Visual Studio 相比,它们有些有限。特别是,我发现以下内容相当令人失望,但我不知道它们是否是 Eclipse 作为普通 IDE 的限制,或者我正在尝试使用 Grails 来使用它进行开发。

  1. 看起来与 Visual Studio 的“立即窗口”相当差劲 - 在 VS 中,我在调试过程中一直使用“立即窗口”,我发现在 Eclipse 中等效的是“<强>显示” View 。然而,在 VS 中,我可以输入对象的名称(例如“?user”),然后按 Enter 键后,我会获得该对象的所有属性/方法,而在 Eclipse 中,我必须突出显示该表达式,然后明确告诉它执行检查、执行等操作。完成此操作后,它将检查结果添加到另一个窗口,迫使我在两个窗口之间切换。

  2. 显示 View 似乎无法实际评估属性或方法。例如,如果我有一个 User 类的实例,并且在显示窗口中输入 userInstance.FirstName 或调用 userInstance.FullName() 等方法,我会收到评估失败错误:“The method FullName() is undefined for类型对象”。此外,如果我为实例添加一个监视,我可以看到属性,但同样看不到该方法。但是,该方法作为代码块中的表达式可以很好地计算(证明它确实存在并被识别)

  3. 此外,虽然各种文档都指出可以通过简单地突出显示对象来添加监视,但右键单击并添加监视此选项似乎不存在,因此我必须将对象键入到显示中 View ,突出显示它并从显示 View 上下文菜单中添加监视。

  4. 计算 User.get(params.id) 等表达式(同样在“显示” View 中)会返回错误,如下所示:

User.get(params.id)
Evaluation failed. Reason(s): params cannot be resolved

但是,它在单步执行代码时评估良好。这是由于 Grails/Groovy 的动态特性吗?

代码片段:

User.groovy:

class User {

    String firstName
    String lastName
    String middleName
    private String fullname

    static constraints = {
        firstName(blank:false)
        lastName(blank:false)
        middleName(blank:false)
    }

    public String FullName()
    {
        fullname = firstName + " " + lastName;
    }
}

UserController.groovy:

class UserController {

...

   def show = {
        User userInstance = User.get(params.id)
        userInstance.FullName()
        if (!userInstance) {
            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id])}"
            redirect(action: "list")
        }
        else {
            [userInstance: userInstance]
        }
    }

...

}

任何人都可以说这些是否是 Eclipse、Grails Plugins for Eclipse 或者可能是其他东西的限制。不管怎样,他们使用 JAVA 开发 MVC Web 应用程序的吸引力远低于我使用的同等 ASP.NET MVC。

谢谢

最佳答案

大约 6 个月前,我评估了用于 Groovy/Grails 开发的所有 3 个主要 Java IDE,IntelliJ IDEA 远远领先于其他两个。我不知道自那以后它们是否有所改进,但我今天仍在使用 IntelliJ,并且对此感到非常满意。它对 Groovy 调试的支持非常出色,并且允许您执行上面描述的所有操作。我知道它不是免费的,但在我看来,它值得每一分钱。

关于eclipse - Eclipse 中对 Grails Web 应用程序的调试支持很差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258624/

相关文章:

groovy - 如何设置基于 java 的 Spring Boot 应用程序以使用 Groovy 脚本

grails 插件库

grails - 如何保存方法以备后用,将其 stub 一段时间?

java - 附加到 HTML 内容时如何保持 SWT 浏览器小部件的底部可见?

Groovy:在方法中解开命名映射参数

java - Weka 分类器的参数

loops - 在 groovy 中以优雅的方式做事

grails - 设置来自 Controller 的字段错误消息

eclipse - 在Mapreduce中做job chaining时,如何解决chainmapper is not applicable for the arguments错误?

java - 如何在 Eclipse 中使用 JAR 中的类