有没有办法在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类和访问脚本参数?
答案 0 :(得分:0)
您必须使用run-script运行脚本而不是普通脚本
我认为run-script suppor命令行参数实际上看不到run script source code
您可以重写一个运行脚本克隆,它将运行脚本的参数作为bean传递(就像它已经为grailsApplication所做的那样)。我认为做起来并不困难。
或者您可以使用配置中包含的外部属性文件将参数传递给grails应用程序,从而运行脚本。