首先,我很抱歉,但这是一个“给我一个代码”的问题。不过,我保证会从你的答案中学习!这意味着如果您认为有必要,可以随意使用Socratic method。
我目前正在使用Grails开发(维护和构建新的)多个站点,它的工作方式是它提供了一个命令行shell来执行各种任务。
这一切都很好,但在版本之间切换有点令人讨厌,因为它全部由一个名为GRAILS_HOME
的环境变量控制,该变量设置为指向{{1}这样的目录}。
现在,我希望能够做到这一点,而不是做这样的事情:
C:\grails\grails-1.2.3\
然后注意到我使用的是错误的版本而我必须回去,我宁愿做
grails create-app MyWebApp
grails list-plugins -repository=myPluginRepo
grails install-plugin myPlugin
会立刻告诉我,我正在使用Grails 1.3.5。
我在创建这样的psh脚本时遇到的问题是我绝对不喜欢创建脚本。我确实尝试过这样做但是在从psh本身发出大约五条神秘的错误消息后,我决定只是征求意见。
加分点:如果我可以参数化别名调用以指定版本(类似g135 create-app MyWebApp
g135 list-plugins -repository=myPluginRepo
g135 install-plugin myPlugin
),然后将数字附加到环境变量值,
这对我来说是最方便的解决方案。
答案 0 :(得分:4)
这应该这样做:
Function PSGrails($ver)
{
$env:GRAILS_HOME='c:\grails\grails-{0}\' -f $ver
grails $args
}
它只是一个设置变量的短函数,然后执行上面的grails。
通过直接在函数名称后指定版本号来运行它:
psgrails 1.3.5 create-app MyWebApp
psgrails 1.3.5 list-plugins -repository=myPluginRepo
psgrails 1.3.5 install-plugin myPlugin