【问题标题】:How to import Domain class into Groovy script?如何将域类导入 Groovy 脚本?
【发布时间】:2012-06-29 09:27:00
【问题描述】:

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

【问题讨论】:

    标签: grails


    【解决方案1】:

    你必须使用 run-script 来运行你的脚本,而不是像一个普通的脚本

    run-script documentation

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

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

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

    【讨论】:

    • 正如我在问题中提到的,如果我使用 run-script 运行它,我将无法访问参数。
    • 当我使用run-script 运行grails 脚本时,我看到No such property: includeTargets for class。知道这里发生了什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2012-02-03
    相关资源
    最近更新 更多