我的grails应用程序中需要一个自定义命令行任务,因此我使用grails create-script my-script创建了一个脚本。
通过该脚本,我想访问应用程序的一些配置属性。通常情况下,您可以通过grailsApplication.config完成此操作。但是,在命令行脚本的上下文中似乎不能使用grailsApplication。下面的脚本....
includeTargets << grailsScript("Init")
target(main: "The description of the script goes here!") {
    println  grailsApplication.config.mysetting
}
setDefaultTarget(main)...yields (以grails my-script身份运行时):
groovy.lang.MissingPropertyException: No such property:
                                      grailsApplication for class: MyScript我还尝试了ConfigurationHolder.config,它只返回null。
那么,如何从命令行启动的脚本访问应用程序配置呢?
发布于 2011-08-14 15:26:46
诀窍是引入引导目标并依赖它们,如下所示。请注意,在此阶段,应用程序上下文对象称为grailsApp,,而不是grailsApplication。
includeTargets << grailsScript('_GrailsBootstrap')
target(main: "The description of the script goes here!") {
    depends checkVersion, configureProxy, bootstrap
    println  grailsApp.config.mysetting
}
setDefaultTarget(main)您也可以使用run-script命令。这对我不起作用,因为它试图初始化一个Hibernate会话。我的应用程序使用mongodb作为主数据存储,requires that you uninstall the Hibernate plugin - so run-script会失败。
https://stackoverflow.com/questions/7055500
复制相似问题