【发布时间】:2009-12-18 10:28:02
【问题描述】:
嗯,这似乎是一项简单的任务,但我没有设法让它运行。
当从提示符调用时,我有一个在 Windows Vista 下运行良好的 groovy 脚本:
> cd MY_GAILS_PROJECT_DIR
> groovy cp src/groovy scripts/myscript.groovy
现在,我想通过我的维护服务类(从控制器调用)执行这个脚本(并将一些输入参数传递给它),如下所示,
class MaintenanceService {
def executeMyScript() {
"groovy cp src/groovy scripts/myscript.groovy".execute()
}
}
它根本不起作用!我什至无法让 execute() 方法识别任何引发异常的命令(如 "cd .".execute()):
Error 500: java.io.IOException: Cannot run program "cd": CreateProcess error=2, The system cannot find the file specified
1- 如何从我的 grails 应用程序中执行一个 groovy 脚本?
2- 这里的最佳做法是什么?例如,我应该使用 QuartzPlugin 然后使用 triggerNow 方法来执行脚本吗?我应该使用 Gant 任务吗?如果是,怎么做?
谢谢。
【问题讨论】:
-
是否有一个特定的原因,它必须是一个时髦的“脚本”,而不是一个你可以调用的类,正如 bastianneu 建议的那样?
-
是的。我也需要在没有 Grails 环境的情况下执行这个 groovy 脚本。