2009-02-13 2 views
2

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

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

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

Я нахожусь на Grails 1.1.

ответ

4

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

http://grails.org/Console+Plugin

6

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

new BootStrap().init() 
+0

Вот фрагмент для запуска инициализации: новый BootStrap(). Init() – chanwit

+0

благодарит chanwit! Я должен был сделать такое краткое сообщество сообществ редактируемым ... в следующий раз. – codeLes

5

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

Если вы добавляете в свой бутстрапе следующий код:

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 консоль, которая позволит вам взаимодействовать с классами домена в интерактивном режиме. Так, например, вы можете добавить новый объект, а затем просмотреть его в веб-приложении.

1

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

0

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

+0

Не думайте, что Eclipse (или STS) имеет такую ​​функцию «Оценить выражение», которая будет работать с кодом Groovy. Хотелось бы. –

0

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

Смежные вопросы