Ошибка Maven в MINGW Git bash: не удалось найти или загрузить основной класс org.codehaus.plexus.classworlds.launcher.Launcher
Мне известно о том, что этот вопрос обсуждался в нескольких вопросах, но ни один ответ не разрешил мою конкретную проблему.
Я установил 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
?
Ответы
Ответ 1
Некоторое время я получал точно такую же ошибку, пока не понял, что это вызвано моим антивирусом (Comodo). Git Bash не будет работать должным образом, даже если я вышел/отключил Comodo.
Поэтому, если у вас есть Comodo, попробуйте выполнить следующие действия, чтобы исправить ошибку (если вы этого не сделаете, то, возможно, попробуйте выполнить нечто подобное с любым используемым антивирусом/брандмауэром):
Comodo-> Настройки-> Файл Rating-> Добавить папку (Git Folder). В результате было добавлено более 5000 доверенных файлов (но это помогло решить проблему).
Comodo-> Настройки-> Дополнительно Protection-> Разное-> и найдите галочку "Не обнаруживать инъекции шелл-кода в...". Я добавил всю папку Git для инъекций шелл-кода.
Я установил для папки git значение "игнорировать" в Comodo-> "Настройки" → containment-> "Автоматическое ограничение"
Я добавлю, что я не уверен, что все шаги требуются, поэтому не стесняйтесь выполнять их один за другим и посмотрите, что поможет.
Ответ 2
Испытывает точно такую же проблему на компьютере с Windows 7. Произошло в одночасье без изменения версии в git/mingw64, maven или java.
Первый тест, который вы можете рассмотреть, - это проблема PATH (на самом деле ОП упоминает неверный Path=%MAVEN_HOME%\bin
)
Для тестирования используйте упрощенную PATH в сеансе CMD (поэтому он ограничен только этим сеансом)
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%
Вы можете адаптировать ту же идею в своем .bashrc
, если вы хотите подобный $ PATH в своем сеансе bash, введя bash
в CMD с упрощенным PATH.
Затем; в этом контексте вы можете еще раз проверить, сохраняется ли проблема.