我意识到这个问题已在几个问题中讨论过,但没有答案解决了我的具体问题。
我已经安装了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
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
变量?
答案 0 :(得分:2)
我得到完全相同的错误一段时间,直到我意识到它是由我的防病毒软件(Comodo)造成的。如果我退出/禁用Comodo,Git bash将无法正常甚至。
因此,如果您有Comodo,请尝试按照以下步骤修复错误(如果您不这样做,那么可能尝试使用您正在使用的任何防病毒/防火墙执行类似的操作):
Comodo->设置 - >文件评分 - >添加文件夹(Git文件夹)。最终添加了超过5000个可信文件(但它有助于解决问题)。
Comodo-> Settings-> Advanced Protection-> Miscellaneous->并找到“不要检测...中的shellcode注入”复选标记。我将整个Git文件夹添加到shellcode注入中。
我在Comodo中将git文件夹设置为“ignore” - > Settings-> containment->“Auto-containment”
我将补充一点,我不确定是否需要执行所有步骤,因此请随意逐个执行,看看有哪些帮助。
答案 1 :(得分:1)
在Windows 7计算机上遇到完全相同的问题。在一夜之间发生,在git / mingw64,maven或java中没有版本更改。
您可以考虑的第一个测试是PATH问题(OP实际上提到了错误的Path=%MAVEN_HOME%\bin
)
在CMD会话(因此仅限于该会话)中使用simplified PATH进行测试
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%MAVEN_HOME%\bin;%PATH%
set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%
如果您希望在bash会话中使用类似的$ PATH,可以在.bashrc
中采用相同的想法,方法是在CMD中键入带有简化路径的bash
。
然后;在这种情况下,您可以再次检查问题是否仍然存在。