Плохая поддержка отладки для веб-приложения Grails в Eclipse - PullRequest
2 голосов
/ 13 февраля 2010

Я обычный C # / ASP.NET MVC / Visual Studio пользователь, и я только что начал проект в JAVA / GRails / Eclipse , но я нахожу его довольно сложно использовать функции отладки Eclipse и найти их несколько ограниченными по сравнению с Visual Studio. В частности, я нахожу следующее разочаровывающим, но я не знаю, являются ли они ограничениями Eclipse как ванильной IDE или тем, что я пытаюсь использовать его для разработки с использованием Grails.

  1. На первый взгляд плохой эквивалент Visual Studio " Immediate Window " - В VS я все время использую окно Immediate во время отладки, и я обнаружил, что в Eclipse эквивалентом является " Дисплей"Просмотр. Тем не менее, в то время как в VS я могу ввести имя объекта (например, «? User») и после нажатия Enter мне даны все свойства / методы объекта, в затмении я должен выделить выражение и затем явно сказать ему либо выполнить проверку, выполнить и т. д. Сделав это, он затем добавляет результаты проверки в другое окно, заставляя меня переходить между ними.

  2. Вид дисплея, кажется, не может реально оценить свойства или методы . Если, например, у меня есть экземпляр класса User, и в окне «Дисплей» введите userInstance.FirstName или вызовите метод, например userInstance.FullName (), я получу ошибки оценки: «Метод FullName () не определен для Тип объекта ". Кроме того, если я добавлю часы для экземпляра, я смогу увидеть свойства, но опять-таки метод нигде не будет виден. Однако метод оценивает штраф как выражение в блоке кода (доказывая, что он существует и распознается)

  3. Кроме того, хотя в различных документах говорится, что можно добавить часы, просто выделив объект, при щелчке правой кнопкой мыши и добавлении часов эта опция, похоже, отсутствует, поэтому мне приходится вводить объект в дисплей просмотреть, выделить его и добавить часы из контекстного меню просмотра дисплея.

  4. Оценка выражений, таких как User.get (params.id) (снова в представлении отображения), возвращает ошибки , такие как:

User.get (params.id)
Оценка не удалась. Причина (ы): параметры не могут быть разрешены

Тем не менее, он оценивает нормально при переходе по коду. Это связано с динамической природой 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 для Eclipse или что-то еще. В любом случае, они делают разработку веб-приложения MVC с использованием JAVA гораздо менее привлекательной, чем эквивалентный ASP.NET MVC, который я использовал.

Спасибо

Ответы [ 4 ]

3 голосов
/ 15 февраля 2010

Я оценил все 3 основных Java IDE для разработки Groovy / Grails около 6 месяцев назад, и IntelliJ IDEA намного опередил два других. Я не знаю, улучшились ли они с тех пор, но я все еще использую IntelliJ сегодня и очень доволен этим. Поддержка отладки Groovy превосходна и позволяет вам делать все, что вы описали выше. Я знаю, что это не бесплатно, но, по моему мнению, оно стоит каждого цента.

1 голос
/ 14 февраля 2010

Прежде всего SpringSource Tool Suite значительно улучшен, когда дело доходит до работы с Grails и Groovy. Поэтому я предлагаю вам попробовать это. Однако у вас все еще будут те же проблемы.

Что касается пункта 1, я тоже пропускаю окно «Немедленно».

Причина, по которой пункты 2-4 не работают, из-за динамической природы Groovy, Eclipse знает, как работать с простыми объектами Java, и, хотя они являются объектами Java, Groovy добавляет объекты, такие как динамические методы Затмение понятия не имеет о.

Я не могу говорить о Netbeans of Idea, но вы можете проверить их.

0 голосов
/ 30 декабря 2010

Обратите внимание, что в STS 2.5.1 появилась расширенная поддержка отладки для Groovy при остановке в кадре стека Groovy. Теперь представление отображения и выражения выражений распознает синтаксис Groovy и может оценивать код Groovy так, как вы ожидаете.

Итак, это значит, что ваши пункты 2 и 4 теперь работают.

0 голосов
/ 27 сентября 2010

Как только вы приобрели некоторый опыт использования платформы, привыкнуть к любому редактору, не относящемуся к IDE (мне нравится тот, который поставляется с Far Manager), это просто пирог.

Лично я не использовал ни одну из этих IDE для создания последнего проекта, и он шел намного быстрее, чем любой другой проект, над которым я работал.

Забавно, что из-за того, что у меня нет IDE, чтобы сказать мне, что я что-то неправильно пишу, я создал множество модульных тестов (которые вы должны делать в любом случае), и я использую плагин авто-тестирования для проведения тестирования. , Это так весело, и мне нечего прижимать, когда я печатаю - просто чистое творение :) 1005 *

...