Passa JAVA HOME como parâmetro para mvn

11

Eu gostaria de saber se é possível passar JAVA_HOME como parâmetro para a linha de comando mvn. Eu procurei em quase todos os lugares, mas não consegui encontrar uma resposta para isso.

Eu sei que podemos definir o JAVA_HOME usando export, mas eu preciso passar isso como parâmetro se isso for possível. Algo como:

 mvn install -DJava_Home=/usr/java/jdk-1.7.0
    
por Noman Amir 11.03.2013 в 18:51
fonte

2 respostas

3

não, não diretamente, mas olhando para o mvn.bat na minha máquina, vejo este snippet promissor:

@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"

para que você possa sobrescrever qualquer variável que você goste em um arquivo de script mavenrc_pre, embora eu saiba que isso não permitirá que você substitua o java home pela linha de comando. No pior dos casos, o mvn é um arquivo de script simples e você pode adicionar a opção a ele. Observe também que simplesmente sobrescrevendo JAVA_HOME pode nem sempre produzir os resultados esperados, pois em muitos sistemas, JAVA_HOME \ bin está no caminho. Isso significa que, mesmo que você o substitua, o jvm anterior ainda estará no caminho, o que pode levar a resultados inesperados.

    
por radai 11.03.2013 / 18:56
fonte
2

Outra maneira hacky eu fiz isso: (eu tenho a maioria dos meus projetos no Java 7, mas um punhado no java 8)

1) Adicione uma nova variável env JAVA8_HOME ao seu .zshrc (ou similar)

2) copie o executável 'mvn' e chame-o de 'mvn8'

3) Substitua 'JAVA_HOME' por 'JAVA8_HOME' em 'mvn8'

Agora, mvn8 clean install deve funcionar.

    
por jackrabb1t 08.06.2016 / 23:32
fonte