Обновление: от Grails 1.3.6 имеет доступ к полному домену из сценариев Gant. От Grails 1.3.6 release notes:одноразовый скрипт grails для заполнения базы данных
Теперь вы можете запустить один или несколько сценариев Groovy из командной строки, используя команду run-script, например.
Grails запустить-скрипт [путь-к-скрипт-1] [путь к сценарию-2] ... [путь к сценарию-н]
Это работает вокруг проблемы в сценариях Gant где вы не можете удобно обращаться к классам приложений, поскольку они недоступны в пути к классам при запуске скриптов.
Привет всем,
Я новичок в использовании Grails (в реальном проекте) и у меня есть один-офф сценарий мне нужно выполнить, который читает файл, а затем заполняет мою базу данных.
Я хотел, чтобы сценарий запускался в контексте моего приложения grails, поэтому я использовал команду create-script. Теперь я понимаю, что это сценарий «Гант». Причиной для этого было то, что я думал, что это позволит мне легкий доступ ко всем Grails домена хорошего Несс, так что я мог бы сделать что-то вроде этого легко:
Car car = new Car(model: 'bar', brand: 'Ford')
car.save()
Здесь автомобиль является одним из мои классы домена и строки строк и «Форд», которые я извлек из своего файла.
Начало моего сценария выглядит следующим образом:
import com.foo.Car
grailsHome = Ant.project.properties."environment.GRAILS_HOME"
includeTargets << new File ("${grailsHome}/scripts/Bootstrap.groovy")
target(main: "a script for storing cars") {
depends(bootstrap, classpath) // code dealing with the file with cars follows
Удивительно, но заводной дает мне java.lang.NoClassDefFoundError: com.foo.Car
, когда я выполнить скрипт с командой grails LoadCars
Могу ли я, принимая неправильный подход, или есть что-то более простое я делаю неправильно?
Любая помощь приветствуется
Огромное спасибо Тед! – 2010-12-04 14:02:19