我想创建grails脚本,它将管理员帐户添加到我的应用程序中。类似的东西:
grails run-script utils/adminAdd.groovy username password
不幸的是,似乎 run-script 不支持将参数传递给脚本(允许一次运行多个脚本,而不是)。 有人知道解决方法吗?
答案 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的一部分。我很懒,而且很忙,所以我制作了一个自定义脚本来完成这项工作。