如何将Domain类导入Groovy脚本?

时间:2012-06-27 21:08:49

标签: grails

有没有办法在groovy脚本中访问域对象?我像往常一样尝试导入它们,但我仍然得到NoClassDefFoundError。我也尝试将软件包添加到depends列表中,但这也无济于事。

我通过grails MyScript param1 param2调用脚本。如果我通过grails run-script scripts/MyScript运行它,那么我可以导入正常,但不能通过参数。

我看到this question完全模仿了我的问题,然而,这个解决方案对我来说似乎没有用。

import foo.Bar

includeTargets << grailsScript("Init")
includeTargets << grailsScript("_GrailsArgParsing")

target(main: "Does Foo") {
    depends(configureProxy, classpath, parseArguments)

    println argsMap

    Bar.get(1)//Throws java.lang.NoClassDefFoundError
}

setDefaultTarget(main)

如何在Groovy脚本中导入Domain类和访问脚本参数?

1 个答案:

答案 0 :(得分:0)

您必须使用run-script运行脚本而不是普通脚本

请参阅run-script documentation

我认为run-script suppor命令行参数实际上看不到run script source code

您可以重写一个运行脚本克隆,它将运行脚本的参数作为bean传递(就像它已经为grailsApplication所做的那样)。我认为做起来并不困难。

或者您可以使用配置中包含的外部属性文件将参数传递给grails应用程序,从而运行脚本。