【发布时间】:2018-01-05 13:30:03
【问题描述】:
我知道这个问题已经在几个问题中讨论过,但没有答案能解决我的具体问题。
我已经安装了 Git bash 和 Maven,我正在尝试使用 Git bash 执行 Maven。它因上述错误而中止。
我的系统环境:
Windows 7
Git 2.13.3
Maven 3.5.0
所需的用户变量:
HOME=%HOMEPATH%
M3_HOME=%MAVEN_HOME%
MAVEN_HOME=path-with-no-blanks
Path=%MAVEN_HOME%\bin
Maven 在 Windows 命令提示符和 Cygwin 上运行良好。只有基于 MINGW 的 Git bash 失败。
我检查了mvn 下的 bash 脚本:C:\path\to\maven\bin
通过设置日志输出并检查MAVEN_HOME 值何时丢失,我发现它已被这些语句清除(甚至JAVA_HOME):
# For MinGW, ensure paths are in Unix format before anything is touched !!!HERE MAVEN_HOME value is getting lost!!!
if $mingw ; then
[ -n "$MAVEN_HOME" ] &&
MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`(cd "$JAVA_HOME"; pwd)`
# TODO classpath?
fi
在另一台 Windows 机器(不同版本的 Maven 和 Git)上,相同的行有点不同:
M2_HOME="`(cd "$MAVEN_HOME"; pwd)`"
代替:
MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`
首先,我认为这是由于引号字符的类型。但是工作中的 Windows 机器甚至可以使用我失败的 Windows 机器上的新脚本运行良好。我还尝试安装旧的 Git 或旧的 Maven - 没有任何帮助。
为什么提到的 bash 脚本行会清除 MAVEN_HOME 变量?
【问题讨论】:
-
你解决过这个问题吗?我在stackoverflow.com/questions/46718502/… 遇到了同样的问题。您使用的是 32 位还是 64 位 Git?
-
不幸的是,我没有。我的解决方法是将Maven的bash脚本中的路径修改为绝对路径。一个问题:你使用 Comodo 吗?自从我升级到最新的主要版本后,我遇到了问题。但我无法解释这是否只是巧合,或者它是否真的与这个问题有关。我正在使用 64 位 Git。
-
谢谢——我没有使用 Comodo,但 Maven 和 Git Bash 直到最近也一直在为我工作。所以可能有一些 Git Bash 外部的东西发生了变化。我已经做了同样的解决方法,所以可能会继续这样做。如果我发现任何新内容,会通知您。