我正在调用一个 git 钩子来预先提交。这会触发对 groovy 脚本的调用,并以允许远程调试挂钩执行的方式执行此操作。像这样:
#!/usr/bin/env groovy
groovy -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=8085,suspend=y "C:\Users\.......hooks\PreCommit.groovy"
当我使用 GIT BASH 触发钩子时,我看到以下错误:
/c/Program Files (x86)/Groovy/Groovy-2.1.0/bin/startGroovy: line 96: [: too many arguments org.codehaus......: startup failed: .... expected EOF, found ':' @ line 3 column 35]
当我快速查看 startGroovy 文件时,我看到以下不清楚的代码 - 其中第 96 行是 GROOVY 主页的 if 条件:
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$GROOVY_HOME" ] && GROOVY_HOME=`cygpath --unix "$GROOVY_HOME"`
[ -n "$JAVACMD" ] && JAVACMD=`cygpath --unix "$JAVACMD"`
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CP" ] && CP=`cygpath --path --unix "$CP"`
else
if [ -n "$GROOVY_HOME" -a `expr "$GROOVY_HOME":'\/$'` ] ; then
GROOVY_HOME=`echo $GROOVY_HOME | sed -e 's/\/$//'`
fi
fi
这是 groovy 引导程序中的错误吗?我的 Windows 7 让环境变量 GROOVY_HOME 正确指向:C:\program file (x86)\Groovy\Groovy-2.1.0