Интерактивно запускать код в среде исполнения Grails - PullRequest
2 голосов
/ 13 февраля 2009

Я работаю над кодом для загрузки некоторых данных начальной загрузки в мое приложение Grails. Что-то не работает с одним из классов, которые я пытаюсь создать, поэтому было бы очень удобно иметь возможность интерактивно запускать этот код в среде времени выполнения Grails, и мне интересно, есть ли способ сделать это.

Я знаю о консоли Grails, но она не загружает загруженные данные, с которыми я хочу взаимодействовать. Я также видел этот поток при отладке - допускает ли какая-либо из IDE интерактивные оболочки в среду выполнения? Кажется, что Debug Plugin планирует предложить это, но пока не существует.

Я нашел этот скрипт , который позволяет вам выполнить скрипт из контекста Grails, но я бы хотел что-то более интерактивное.

Я на Граале 1.1.

Ответы [ 6 ]

6 голосов
/ 13 февраля 2009

Используя консоль Grails, запустите класс начальной загрузки вручную, затем запустите соответствующий код.

new BootStrap().init()
5 голосов
/ 26 июля 2009

Наконец-то нашел именно то, что мне нужно было сделать!

Если вы добавите в свой загрузчик следующий код:

 def init = {servletContext ->
    if (GrailsUtil.environment == GrailsApplication.ENV_DEVELOPMENT) {
      def appCtx = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext)
      def grailsApp = appCtx.getBean(GrailsApplication.APPLICATION_ID);
      Binding b = new Binding();
      b.setVariable("ctx", appCtx);
      def console = new Console(grailsApp.classLoader, b);
      console.run()
    }   }

Когда приложение запускается, оно также открывает консоль Groovy, которая позволяет вам интерактивно взаимодействовать с классами домена. Так, например, вы можете добавить новый объект, а затем просмотреть его в веб-приложении.

4 голосов
/ 05 марта 2009

Для Grails 1.1 существует веб-консольный плагин, который позволяет выполнять код для запущенного экземпляра grails через веб-интерфейс:

http://grails.org/Console+Plugin

1 голос
/ 27 октября 2009

Я использую IDEA. Я создал контроллер под названием testController только для этого типа «экспериментов». Он отлично работает для меня. Вы можете обновить код на контроллере и повторить тестирование, используя degub в IDEA и вызывая контроллер через URL, без повторного развертывания приложения.

0 голосов
/ 14 сентября 2015

Есть ли способ запустить некоторые "командные" файлы (возможно, тесты) в текущем контексте приложения? Например, grails run-my-file.groovy и получите результаты немедленно, не дожидаясь всего, что делает Grails run-app. Как консоль Grails, но внутри IDE. Я имею в виду make file, щелкните правой кнопкой мыши на RUN и он запустится в текущем запущенном приложении.

0 голосов
/ 16 июня 2010

Вы можете открыть сеанс отладки для вашего приложения Grails из вашей IDE. Когда вы достигаете точки останова, вы можете запустить произвольный код прямо из вашей IDE. В IntelliJ IDEA вы открываете эту панель оценки фрагмента кода, вызывая Run -> Evaluate Expression. Затмение NetBeans, вероятно, имеет ту же функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...