Мне известно о том, что этот вопрос обсуждался в нескольких вопросах, но ни один ответ не разрешил мою конкретную проблему.
Я установил Git bash и Maven, и я пытаюсь выполнить Maven с помощью Git bash. Он отменяет указанную ошибку.
Моя системная среда:
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. Только с ошибкой Git bash на основе MINGW.
Я рассмотрел bash script 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 даже хорошо работает с новым script с моей неисправной машины Windows. Я также попытался установить старый Git или более старый Maven - ничего не помогает.
Почему указанная строка bash script очищает переменную MAVEN_HOME
?