更新:從Grails 1.3.6開始,可以從Gant腳本訪問完整域。 來自Grails 1.3.6 release notes:用於填充數據庫的一次性grails腳本
您現在可以使用run-script命令從命令行運行一個或多個Groovy腳本,例如,
的Grails運行腳本[路徑到腳本-1] [路徑到腳本2] ... [路徑到腳本-N]
它解決的問題Gant腳本在那裏你不能方便地訪問應用程序類,因爲它們在腳本啓動時在類路徑中不可用。
大家好,
我是新來使用Grails(在一個真正的項目),我有一個一次性的腳本,我需要執行,讀取文件,然後填充我的數據庫。
我希望腳本能夠在我的grails應用程序的上下文中運行,所以我使用了create-script命令。我現在明白這是一個'Gant'腳本。在這樣做的理由是,我認爲這將讓我輕鬆訪問所有的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