Maven classworlds.launcher.Launcher Fehler in Git für Windows (64-Bit)

8

Ich benutze Maven seit einigen Monaten auf Git Bash (64-bit) und plötzlich funktioniert es nicht mehr und erzeugt nun diesen Fehler bei jedem maven Befehl:

%Vor%

Ich habe viele Fragen zu SO gelesen, einschließlich dieses: Maven-Fehler: Die Hauptklasse org.codehaus.plexus konnte nicht gefunden oder geladen werden. classworlds.launcher.Launcher habe aber mein Problem nicht gelöst.

Ich habe von 2.12 auf das neueste Git für Windows (2.14.2.windows.2) aktualisiert, aber das Problem bleibt bestehen.

Meine Maven-Installation befindet sich unter C: \ apache-maven-3.5.0 \ bin, was in meiner PATH-Variablen steht:

%Vor%

Ich habe auch JAVA_HOME richtig eingestellt:

%Vor%

Ich habe versucht, MAVEN_HOME hinzuzufügen / zu entfernen, aber das scheint im Apache Maven-Startup-Skript (C: \ apache-maven-3.5.0 \ bin \ mvn) nicht gefunden zu werden:

%Vor%

Wenn ich in das Apache Maven Startup Script gehe und Instanzen von $ {MAVEN_HOME} durch C: \ apache-maven-3.5.0 ersetze, dann scheint es die Launcher Klasse zu finden und wird korrekt ausgeführt.

Bearbeitungen wie folgt:

%Vor%

dann produzieren:

%Vor%

Dies ist eine unelegante Problemumgehung und würde eher die richtige Lösung finden. Welche Umgebungs- oder Konfigurationsänderungen kann ich versuchen, damit Maven ausgeführt werden kann, ohne den Pfad fest zu codieren?

Schritte / Ergebnisse für VonCs Antwort :

%Vor%

Nach weiterem Debugging wurde mir klar, dass mein Problem identisch zu Maven-Fehler in MINGW Git bash: Konnte Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher nicht finden oder laden , wo die MAVEN_HOME-Variable wird in diesem Codeabschnitt gelöscht:

%Vor%

Wenn ich die problematische Zeile [[ -n "$MAVEN_HOME" ]] && MAVEN_HOME='(cd "$MAVEN_HOME"; pwd)' in einer Bash-Sitzung starte, kann ich das Verhalten im letzten Git für Windows reproduzieren:

%Vor%

Das bekomme ich, wenn ich den Befehl direkt ausführe - es gibt das aktuelle Verzeichnis und nicht MAVEN_HOME zurück, wie ich es erwarten würde. Angenommen, das passiert, weil der Befehl in einer Subshell ausgeführt wird?

%Vor%     
mcknz 12.10.2017, 20:38
quelle

1 Antwort

1

Als Erstes testen Sie %PATH% : Richten Sie in einer CMD-Sitzung ein vereinfachtes ein PATH .

%Vor%

Beachten Sie, wie die Pfade C:\WINDOWS\... am Ende des PATH beibehalten werden: das ist wichtig.

Fügen Sie dann den Pfad von %JAVA_HOME%\bin und von <maven>\bin vor.

Stellen Sie sicher, dass M2_HOME auf C:\apache-maven-3.5.0 gesetzt ist.

Testen Sie zuletzt Ihren mvn -Befehl sowohl im aktuellen CMD als auch (in demselben Windows) in einer git bash-Sitzung (nur " bash " eingeben)

Schließlich, abhängig von Ihrem Programm und Ihrem Betriebssystem, vergessen Sie nicht, dass Sie mit Windows 10 jetzt WSL und eine vollständige Linux-Bash . Das kann eine mögliche Alternative sein.

    
VonC 16.10.2017 19:47
quelle