2015-09-14 8 views
1

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

import security.User 

List users = User.list() 
users.each { User user -> 
    print(user.name) 
} 

И я получаю ошибку:

my-script.groovy: 1: unable to resolve class security.User 

Все другие манипуляции с Creating an instance of a domain class inside a grails script также не помогает.

Я вижу, что многие документы grails устарели и непоследовательны.

+0

Как работает ваш сценарий, и где он находится? –

+0

в папке сценариев по умолчанию в src/main/scripts, потому что я использовал команду create-script. Как я его запускаю? Хм, уже забыл, у меня возникла ошибка, когда я просто запускаю «grails». Кстати, я вижу, что больше нет команды «run-script». Так как запускать скрипты и как их использовать. Эта статья, кажется, устарела http://www.componentix.com/blog/15/execute-groovy-script-within-grails-context-updated-for-grails –

+0

Возможный дубликат [альтернативы run-script в Grails 3] (http://stackoverflow.com/questions/30591547/run-script-alternative-in-grails-3) –

ответ

1

Grails 3.x удалил команду run-script, поэтому вам нужно написать собственную команду. Вот ответ от одного автора сообщества Grails:

https://stackoverflow.com/a/30806256/2405040

As an alternative, you can write an ApplicationContextCommand see for example, the schema-export command

+0

Может быть, кто-то может дать конкретный пример этого? https://github.com/grails/grails-data-mapping/blob/master/grails-plugins/hibernate/src/main/groovy/grails/plugin/hibernate/commands/SchemaExportCommand.groovy недостаточно ясен для реализации. Я действительно страдаю от отсутствия Yii.Command альтернативы Grails. –