我在 Ubuntu (14.04) 上,刚刚安装了最新版本的 GVM (1.3.13)。然后我用它来安装 Grails (2.3.7)、Groovy (2.2.2) 和 Gradle (1.11)。
Groovy 和 Gradle 似乎安装得非常好(我可以执行他们的 SDK 命令,例如groovyc
等)。但是每当我从任何目录执行任何Grails 命令时,我的整个终端屏幕都会清除,暂停一秒钟,然后重新绘制我的命令行提示符。该命令永远不会被执行。几个月前,在 Nabble 上,另一位用户报告了一个非常相似的问题。
从外壳,如果我执行echo $GRAILS_HOME
,我得到:
/home/myuser/.gvm/grails/current
如果我 ececuteecho $PATH
我确实看到它/home/myuser/.gvm/grails/current/bin
在我的系统路径上。
因此,我决定深入挖掘并实际访问$GRAILS_HOME
. 这是一个实际指向的符号链接/home/myuser/.gvm/grails/2.3.7
。所以当我去那里时,我看到一个正常的 Grails 安装,包括一个bin
目录。当我进入该bin
目录时,我看到:
grails-debug
grails.bat
grails-debug.bat
startGrails.bat
startGrails
grails
我打开grails
(一个shell脚本)并看到:
#!/bin/sh
trap "reset" EXIT
trap "reset" INT
trap "reset" TERM
DIRNAME=`dirname "$0"`
. "$DIRNAME/startGrails"
startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"
我将其修改如下:
#!/bin/sh
trap "reset" EXIT
trap "reset" INT
trap "reset" TERM
echo "1..."
sleep 2s
DIRNAME=`dirname "$0"`
echo "2...dirname is $DIRNAME"
sleep 8s
. "$DIRNAME/startGrails"
echo "3..."
sleep 2s
startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"
然后保存/退出并grails help
从外壳中运行。这是我的输出:
1...
2...dirname is /home/zharvey/.gvm/grails/current/bin
输出的最后一行(“ 2...dirname is... ”)暂停 2 秒,然后我的屏幕清空(就像我发出了clear
命令一样)并且我的提示重新出现。我的实际命令 ( ) 在任何时候都不会实际grails help
执行或生成输出。因此,似乎存在错误的确切行是:
. "$DIRNAME/startGrails"
这行甚至在做什么,为什么会导致脚本失败?
我的问题
- 有人可以确认这实际上是 Grails 或 GVM 错误,而不是我安装错误的情况吗?
- 最重要的是,有人能告诉我我能做些什么来解决这个问题并让 Grails 尽快启动并运行吗?