1

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

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

我已经看到这个问题完全模仿了我的问题,但是,该解决方案似乎对我不起作用。

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 脚本中导入域类和访问脚本参数?

4

1 回答 1

1

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

请参阅运行脚本文档

我不认为 run-script 支持命令行参数实际上是查看run script source code

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

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

于 2012-06-28T07:58:05.450 回答