2013-03-11 12 views
9

Ich würde gerne wissen, ob es möglich ist, JAVA_HOME als Parameter an die mvn-Befehlszeile zu übergeben. Ich habe fast überall gesucht, konnte aber keine Antwort darauf finden.Bestehe JAVA HOME als Parameter an mvn

Ich weiß, wir können JAVA_HOME mit Export setzen, aber ich muss es als Parameter übergeben, wenn das möglich ist. Etwas wie:

mvn install -DJava_Home=/usr/java/jdk-1.7.0 

Antwort

3

nein, nicht direkt, sondern an mvn.bat auf meiner Maschine der Suche Ich sehe das viel versprechende Schnipsel:

@REM Execute a user defined script before this one 
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 

so können Sie eine beliebige Variable außer Kraft setzen Sie in einer mavenrc_pre Skriptdatei wie obwohl ich weiß, dass dies nicht zulassen wird, dass Sie Java von der Befehlszeile aus überschreiben. Worst Case, mvn ist eine einfache Skriptdatei und Sie könnten die Option hinzufügen. Beachten Sie außerdem, dass das einfache Überschreiben von JAVA_HOME möglicherweise nicht immer zu den erwarteten Ergebnissen führt, da sich auf vielen Systemen JAVA_HOME \ bin auf dem Pfad befindet. Das bedeutet, dass selbst wenn Sie es überschreiben, der vorherige jvm immer noch auf dem Pfad ist, was zu unerwarteten Ergebnissen führen kann.

+0

Vielen Dank für die ausführliche Antwort. Ich stimme der Tatsache vollkommen zu, dass das Überschreiben von JAVA HOME möglicherweise nicht zu dem erwarteten Ergebnis führt und das, was Sie gesagt haben, sinnvoll ist. Mal sehen, ob wir noch mehr Beitragszahler haben können, so dass wir uns einig sind, dass es nicht machbar ist. Ihre Hilfe wird wirklich geschätzt! –

2

Ein weiterer Hacky Art, wie ich dies tat (ich die meisten meiner Projekte auf Java 7, aber eine Handvoll auf Java 8)

1) hinzufügen

eine neue env Variable JAVA8_HOME auf Ihre .zshrc (oder ähnlich)

2) kopieren sie die 'mvn' ausführbare Datei und nennen es 'mvn8'

3) Ersetzen sie 'JAVA_HOME' mit 'JAVA8_HOME' in 'mvn8'

Jetzt sollten mvn8 clean install gerade arbeiten.

Verwandte Themen