Grails run-script with argument

时间:2011-10-18 09:20:48

标签: grails

我想创建grails脚本,它将管理员帐户添加到我的应用程序中。类似的东西:

grails run-script utils/adminAdd.groovy username password

不幸的是,似乎 run-script 不支持将参数传递给脚本(允许一次运行多个脚本,而不是)。 有人知道解决方法吗?

3 个答案:

答案 0 :(得分:3)

应该支持此功能,因此您应该在http://jira.grails.org/browse/GRAILS

创建问题

与此同时,我认为为了保持向后兼容性,您可能需要一种方法来区分脚本名称和args,例如前缀:

grails run-script utils/adminAdd.groovy -Jusername -Jpassword -Jfoo=bar

然后run-script可以将args列表拆分为未加前缀的脚本名称,并在运行时将解除前缀的args发送到每个脚本。

一旦你在本地工作,就发送一个拉取请求或将更新后的脚本附加到JIRA,它会得到更快的修复。

答案 1 :(得分:0)

请参阅我对How can I run a Groovy class from the command-line within a Grails environment?

的回答

简而言之,您的脚本中需要includeTargets << grailsScript("_GrailsArgParsing");有关更多选项,请参阅documentation

答案 2 :(得分:0)

如果有人仍在寻找现成的解决方案,here it is.

我通过深入研究grails-2.x / scripts / RunScript.groovy解决了这个问题。然后我自己创建了一个名为RunSingleScript.groovy的新脚本,该脚本接受参数,而不是原始的脚本列表。

我相信这段代码可以重写为Burt suggested之类的内容,并使其成为核心RunScript.groovy的一部分。我很懒,而且很忙,所以我制作了一个自定义脚本来完成这项工作。