Na minha máquina, tenho duas versões java instaladas: (1.6 e 1.7 instaladas manualmente por mim). Preciso dos dois para projetos diferentes. Mas para o Maven eu preciso do 1.7, agora o meu Maven usa a versão 1,6 java, como posso configurar o Maven para usar o 1,7?
162
Respostas:
O Maven usa o
JAVA_HOME
parâmetro para encontrar qual versão do Java ele deve executar. Vejo no seu comentário que você não pode mudar isso na configuração.JAVA_HOME
parâmetro imediatamente antes de iniciar o maven (e alterá-lo novamente, se necessário).mvn
(não-windows) /mvn.bat
/mvn.cmd
(windows) e definir explicitamente a sua versão java.fonte
JAVA_HOME
seu shell local sem alterar a configuração da sua máquina (assim que você fechar esse shell, a alteração será concluída). Você pode até alterá-lo para um único comando:JAVA_HOME=/path/to/jdk17/ mvn build
No POM, você pode definir as propriedades do compilador, por exemplo, para 1.8:
fonte
Adicionando uma solução para pessoas com várias versões Java instaladas
Temos uma grande base de código, a maioria em Java. A maioria do que eu trabalho é escrita em Java 1.7 ou 1.8. Como
JAVA_HOME
é estático, criei alias no meu.bashrc
para executar o Maven com valores diferentes:Isso permite que eu execute o Maven na linha de comando da minha máquina de desenvolvimento, independentemente da versão do JDK usada no projeto.
fonte
mvn2
emvn3
definiu e a nomeação fica um pouco estranha quando as versões Java também entram em jogo ...: Dalias mvn8 = "JAVA_HOME=`/usr/libexec/java_home -v 1.8` && mvn
&&
antesmvn
. mvn não vê o valor de JAVA_HOME com&&
.No windows
Se você não deseja alterar sua
JAVA_HOME
variável dentro das variáveis do sistema.Edite seu
mvn.bat
arquivo e adicione uma linha como estaIsso pode ser feito depois,
@REM ==== START VALIDATION ====
como mencionado por @ Jonathan.No Mac (e Linux?)
Se você não deseja alterar sua
JAVA_HOME
variável dentro de~/.bashrc
ou~/.bash_profile
você pode criar um
~/.mavenrc
arquivo e redefinir seuJAVA_HOME
usando a ferramenta java_homeVerificação de sanidade
Você pode verificar se tudo está funcionando bem executando os seguintes comandos. A versão do jdk deve ser diferente.
mvn -version
então
java -version
fonte
Adicionando meus dois centavos e explicitamente fornecendo a solução.
Eu tenho dois JDKs instalados na minha máquina Windows -
JDK 1.5
eJDK 1.6
.Meu padrão (e definido como variável de ambiente do sistema Windows)
JAVA_HOME
está definido comoJDK 1.5
.No entanto, eu tenho um projeto que eu preciso construir (por exemplo, o Etsy.com do JBehave Tutorial ) usando
JDK 1.6
.Minha solução neste cenário (que funcionou!) É a sugerida
@DanielBarbarian
para configurá-lomvn.bat
.Para alguns que não estão familiarizados com o arquivo em lotes da janela, basicamente adicionei a
set JAVA_HOME=<path_to_other_jdk>
linha depois@REM ==== START VALIDATION ====
demvn.bat
(ou seja%MAVEN_HOME%\bin\mvn.bat
):fonte
mvn.bat
é renomeado paramvn.cmd
.Recentemente, depois de sete longos anos com o Maven, aprendi sobre o toolchains.xml. O Maven ainda o documenta e suporta a partir do 2.0.9 - toolchains documentation
Então, adicionei um arquivo toolchain.xml à minha pasta ~ / .m2 / com o seguinte conteúdo:
Ele permite definir quais JDKs Maven diferentes podem usar para criar o projeto, independentemente do JDK Maven ser executado. É como quando você define o JDK no nível do projeto no IDE.
fonte
Uma solução simples para o problema -
No Mac, seria algo como -
PS: Um caso especial que eu encontrei é o comando acima, dado que não funciona no shell 'fish'. Eu também tinha o shell bash disponível e funcionou bem lá. basta usar o comando 'bash' para alternar para o bash shell.
fonte
Você pode configurar fontes de compilação usando JDK diferente com
maven-compiler-plugin
.Basta especificar o caminho para
javac
na<executable>
tag. Por exemplo, para java11, ele se parece com:fonte
Para evitar qualquer impacto no seu projeto e nas variáveis de ambiente, você pode configurar o plug-in do Maven Compiler apenas no POM do projeto, especificando a versão java de origem e destino
fonte
Você pode configurar o Maven para usar qualquer versão java seguindo as instruções abaixo.
Instale o jenv no link da sua máquina
Verifique as versões java disponíveis instaladas em sua máquina emitindo o seguinte comando na linha de comando.
Você pode especificar a versão global do Java usando o seguinte comando.
Você pode especificar a versão Java local para qualquer diretório (Projeto) usando o seguinte comando no diretório na linha de comandos.
adicione a versão java correta no seu pom.xml
Se você estiver executando o maven na linha de comando, instale o plugin jenv maven usando o comando abaixo
Agora você pode configurar qualquer versão java em sua máquina para qualquer projeto sem problemas.
fonte
Em Macs, (supondo que você tenha a versão correta instalada)
JAVA_HOME=`/usr/libexec/java_home -v 1.8` mvn clean install -DskipTests
fonte
Sem alterar as variáveis de ambiente, você pode gerenciar a versão java com base no nível do projeto usando o Maven Compiler Plugin.
Método 1
Método 2
fonte
No Windows, apenas adiciono vários arquivos em lotes para diferentes versões do JDK à pasta bin Maven, como esta:
mvn11.cmd
então você pode usar
mvn11
para executar o Maven no JDK especificado.fonte
No Linux / Unix, o JAVA_HOME no script shell 'mvn' é substituído pelas configurações em
Por favor, Onde adicionar variáveis de caminho JAVA_HOME e MAVEN no linux
fonte
Não tive sucesso no mac com apenas a configuração
JAVA_HOME
no console, mas fui bem-sucedido com essa abordagem~/.mavenrc
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
fonte
Além disso, você pode ter duas versões do maven instaladas e editar uma delas, editando aqui:
substituindo as aparências de% java_home% pelo caminho desejado em java. Em seguida, basta executar o maven a partir desse caminho modificado
fonte