2016-08-03 8 views
0

Ich habe ein Problem mit der Maven M2_HOME Umgebungsvariable.Override M2_HOME in der Konsole funktioniert nicht

Jedesmal, wenn ich die Variable in der Konsole außer Kraft setzen heißt es:

M2_HOME is set to an invalid directory. 
Please set the M2_HOME variable in your environment to match the 
location of the Maven installation 

Hier ist meine Konfiguration.

Ich habe zwei Maven-Installationen, eine für Version 3.3.9 und eine für Version 3.2.5. Ich brauche die Version 3.2.5 in einer Weile.

Also habe ich zwei zusätzliche Umgebungsvariablen M2_HOME_3_3_9 und M2_HOME_3_2_5 und die M2_HOME Variable natürlich erstellt, die Teil der PATH wie %M2_HOME%\bin ist.

Standardmäßig ist M2_HOME auf% M2_HOME_3_3_9% festgelegt.

Wenn ich maven brauchen 3.2.5 ich die Konsole öffnen und den folgenden Befehl senden:

SET M2_HOME=%M2_HOME_3_2_5% 

Nach diesem Maven geben Sie mir den obigen Fehler.

Wenn ich die Konsole mit M2_HOME in% M2_HOME_3_2_5% in den Umgebungseinstellungen gestartet habe, funktioniert alles einwandfrei.

In Bezug auf.

+0

Wenn Sie 'set M2_HOME' in Ihrer Konsole ausführen, was ist die Ausgabe? – JimHawkins

+0

Vor Änderung über Set M2_HOME = WEG ZUM 3.3.9 M2_HOME_3_2_5 = WEG ZUM 3.2.5 M2_HOME_3_3_9 = WEG ZUM 3.3.9 So das funktioniert. Nach SET M2_HOME = WEG ZUM 3.2.5 M2_HOME_3_2_5 = WEG ZUM 3.2.5 M2_HOME_3_3_9 = WEG ZUM 3.3.9 – Maxx

Antwort

1

Haben Sie auch die PATH Umgebungsvariablen ändern, nachdem Sie M2_HOME ändern?

Mit anderen Worten: Was ist der Inhalt Ihrer Umgebungsvariablen PATH?

Ich vermute, Sie werden Probleme bekommen, wenn die ausführbare Maven-Datei in %M2_HOME_3_2_5%/bin befindet, während M2_HOME Punkte auf %M2_HOME_3_3_9% zeigt.

+0

Hallo, danke für deine Antwort. Ich habe die Variable M2_HOME dem Pfad wie '% M2_HOME% \ bin' hinzugefügt. Wenn also M2_HOME geändert wird, wird auch der PATH geändert. Ich habe diesen Teil zu meiner Frage hinzugefügt. Dies funktioniert auch mit JAVA_HOME. – Maxx

+0

Okay. Das ist komisch. Ich habe deine Frage überprüft. Mein Pfad ist so eingestellt, wie ich es erwähnt habe ABER wenn ich die 'M2_HOME' Variable ändere, wird der' PATH' nicht geändert. Und dann habe ich was du sagst "M2_HOME" zeigt auf 3.2.5 aber der 'PATH' zeigt auf 3.3.9. Was ist das gleiche mit 'JAVA_HOME'. Mein Fehler war, dass ich die Änderung von 'JAVA_HOME' über' mvn -version' überprüft habe und nicht über 'java -version'. – Maxx

+0

@Maxx Ich verstehe nicht, wie JAVA_HOME betroffen ist ... haben Sie mehrere Java-Versionen installiert und möchten den verwendeten ändern, wie Sie mit Maven tun möchten ??? – JimHawkins

-1
export %M2_HOME_3_2_5%=$HOME_3_2_5/builds/maven 
export M2_HOME=%M2_HOME_3_2_5% 
export M2_REPO=$M2_HOME/repository 

In $ M2_HOME/conf eine settings.xml Datei mit diesem Inhalt erstellen:

<settings> 
<localRepository>${env.M2_HOME}/repository</localRepository> 
</settings> 
+1

Warum empfehlen die Maven-Repository in der Maven-Installationsordner zu finden? Das ist falsch.Das gleiche lokale Repository kann für alle Maven-Versionen> 2 – JimHawkins

+0

verwendet werden und es ist falsch die 'settings.xml' in M2_HOME zu ändern. – JimHawkins

0

Die einzigen Dinge, die Sie tun müssen, ist das Hinzufügen des Bin-Ordners der Maven-Distribution, die Sie in Ihrem PATH verwenden möchten, nicht mehr. Keine Notwendigkeit zu verwenden M2_HOME usw.

Darüber hinaus ist das Repository standardmäßig $HOME/.m2/repository und Sie sollten dies nicht und definitiv nicht auf die Maven-Installation ändern. Mach das nicht. Die settings.xml, die Sie ändern sollten, ist nur Ihre eigene Datei, die sich in $HOME/.m2/settings.xml befindet. Sie sollten verhindern, dass die Dateien in der Distribution geändert werden.

+0

Hallo, danke für deine Antwort. Ich habe die Variable M2_HOME zu meinem PATH hinzugefügt wie '% M2_HOME% \ bin'. Wenn ich also M2_HOME ändere, wird der PATH geändert. Was funktioniert JAVA_HOME? Ich habe meine Frage bearbeitet und den Teil mit PATH hinzugefügt. – Maxx

+0

Für Java Home for Maven ist es besser, '$ HOME/.mavenrc' oder für Windows' $ HOME/mavenrc_pre.bat' oder '$ HOME/mavenrc_pre.cmd' zu verwenden, wo Sie JAVA_HOME einstellen können. Außerdem sollten Sie 'M2_HOME' nicht verwenden. – khmarbaise

Verwandte Themen