. Обновление: , начиная с Grails 1.3.6, можно получить доступ ко всему домену из Скрипты Ганта. Из заметок о выпуске Grails 1.3.6 :
Теперь вы можете запускать один или несколько скриптов Groovy из командной строки с помощью команды run-script, например
grails run-script [path-to- script-1] [path-to-script-2] ... [path-to-script-n]
Это позволяет обойти проблему в сценариях Gant, когда вы не можете получить удобный доступ к классам приложений, поскольку они не доступный в пути к классам при запуске скриптов.
Привет всем,
Я новичок в использовании Grails (в реальном проекте), и у меня есть одноразовый сценарий, который мне нужно выполнить, который читает файл, а затем заполняет мою базу данных.
Мне нужен сценарий для запуска в контексте моего приложения grails, поэтому я использовал команду create-script. Теперь я понимаю, что это делает его сценарием Ганта. Причина для этого заключалась в том, что я думал, что это позволит мне легко получить доступ ко всем функциям домена grails, чтобы я мог легко сделать что-то вроде этого:
Car car = new Car(model: 'bar', brand: 'Ford')
car.save()
Здесь Car - один из моих доменных классов, а строки bar и Ford я извлек из своего файла.
Начало моего скрипта выглядит так:
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
Удивительно, но Groovy дает мне java.lang.NoClassDefFoundError: com.foo.Car
, когда я выполняю сценарий с командой grails LoadCars
Я беру неправильный подход, или есть что-то более простое, что я делаю неправильно?
Любая помощь приветствуется