지금 몇 달 동안 Git Bash (64 비트)에서 Maven을 사용하여 갑자기 작동을 멈추었습니다. 어떤 받는다는 명령에 오류 :이 일을 포함하여 SO에 대한 많은 질문을 검토 한Git for Windows (64 비트)에서 Maven classworlds.launcher.Launcher 오류가 발생했습니다.
[email protected] MINGW64 ~ (master *)
$ mvn -v
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
: Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher하지만 내 문제를 해결하지 않았습니다.
2.12의 최신 Git for Windows (2.14.2.windows.2)로 업그레이드했지만 문제가 남아 있습니다.
내 메이븐 설치는 C에 있습니다 : \ 아파치 받는다는-3.5.0 \ bin을 내 PATH 변수에 : 나는 또한 JAVA_HOME이 제대로 설정 한
[email protected] MINGW64 ~ (master *)
$ echo $PATH
...:/c/jdk1.7.0_79/bin:/c/apache-maven-3.5.0/bin:...
:
[email protected] MINGW64 ~ (master *)
$ echo $JAVA_HOME
C:\jdk1.7.0_79
나는 추가/MAVEN_HOME을 제거 시도했다 그러나 그것은 아파치 메이븐 시작 스크립트에서 검출하지 않는 것 (C : \ 아파치 받는다는-3.5.0 \ 빈 \의 MVN) :
[email protected] MINGW64 ~ (master *)
$ echo $MAVEN_HOME
c:\apache-maven-3.5.0
Apache Maven 시작 스크립트로 들어가서 $ {MAVEN_HOME}의 인스턴스를 C : \ apache-maven-3.5.0으로 바꾸면 Launcher 클래스를 찾은 것처럼 보이고 올바르게 실행됩니다. 이 같은
편집 :
CLASSWORLDS_JAR=`echo "${MAVEN_HOME}"/boot/plexus-classworlds-*.jar`
to
CLASSWORLDS_JAR=`echo /c/apache-maven-3.5.0/boot/plexus-classworlds-*.jar`
다음 생산 :
[email protected] MINGW64 ~ (master *)
$ mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: C:\apache-maven-3.5.0
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: C:\jdk1.7.0_79\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
이는 세련 해결 방법이며, 오히려 적절한 해결책을 찾을 것입니다. 경로를 하드 코딩하지 않고 Maven을 실행할 수있는 환경 또는 구성 변경 사항은 무엇입니까? VonC's answer에 대한
단계/결과 :
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\windows\system32>set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\windows\system32>set GH=C:\Program Files\Git
C:\windows\system32>set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
C:\windows\system32>set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%
C:\windows\system32>echo %PATH%
C:\jdk1.7.0_79\bin;c:\apache-maven-3.5.0\bin;C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\windows\system32>echo %M2_HOME%
C:\apache-maven-3.5.0
C:\windows\system32>mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: c:\apache-maven-3.5.0\bin\..
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: C:\jdk1.7.0_79\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
C:\Windows\System32>bash
[email protected] MINGW64 /c/Windows/System32
$ mvn -v
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
[email protected] MINGW64 /c/Windows/System32
$ echo $M2_HOME
C:\apache-maven-3.5.0
[email protected] MINGW64 /c/Windows/System32
$ echo $MAVEN_HOME
c:\apache-maven-3.5.0
더 디버깅 후, 나는 내 문제는 MAVEN_HOME 변수는 코드 섹션에서 삭제됩니다 Maven error in MINGW Git bash: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher에 동일하게 나타납니다 실현 :
# For MinGW, ensure paths are in Unix format before anything is touched
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 용 최신 망할 놈의 동작을 재현 할 수 있습니다
[email protected] MINGW64 ~ (master *)
$ git --version
git version 2.14.2.windows.3
[email protected] MINGW64 ~ (master *)
$ echo $MAVEN_HOME
c:\apache-maven-3.5.0
[email protected] MINGW64 ~ (master *)
$ [[ -n "$MAVEN_HOME" ]] && MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`
[email protected] MINGW64 ~ (master *)
$ echo $MAVEN_HOME
[email protected] MINGW64 ~ (master *)
$
이것은 내가 직접 명령을 실행할 때 내가 무엇을 얻을 - 현재 디렉토리를 반환 내가 기대로 MAVEN_HOME하지 . 명령이 서브 쉘에서 실행되기 때문에 이런 상황이 발생한다고 가정합니다.
[email protected] MINGW64 ~ (master *)
$ echo `(cd "$MAVEN_HOME"; pwd)`
/c/home
[email protected] MINGW64 ~ (master *)
$ `(cd "$MAVEN_HOME"; pwd)`
bash: /c/home: Is a directory
JAVA_HOME 및 MAVEN_HOME의 coniguration과 git bash 버전을 자세히 공유 할 수 있습니까? – nullpointer
@nullpointer thanks - 질문에 통합되었습니다. 자세한 정보가 필요하면 알려주세요. – mcknz