liberação de destino inválida: 1.7

121

Vi perguntas semelhantes, mas ainda não encontrei a resposta.

Usando o maven compile, recebo:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Aqui está o pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Versão Javac:

javac 1.7.0_25

Versão Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Alguma idéia do que poderia ser?

Karan
fonte
14
A maioria maven provavelmente está sendo executado usando Java 6.
Peter Lawrey
3
Gostaria de verificar todas as suas variáveis ​​de ambiente para ver se alguma delas está usando o Java 6. Por exemplo, o Java 7 pode estar no seu caminho, mas lembro-me de usar o JAVA_HOME ou algo parecido.
Peter Lawrey
36
Execute mvn -version. Ele lhe dirá qual Java ele usa.
JB Nizet
você está certo, o mvn está usando o java 1.6 - como posso mudar isso?
Karan
1
configure a variável JAVA_HOME para o diretório inicial do JDK7.
JB Nizet

Respostas:

159

Você precisa definir JAVA_HOME no diretório inicial do jdk7, por exemplo, no Microsoft Windows:

  • "C: \ Arquivos de Programas \ Java \ jdk1.7.0_40"

ou no OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
Michał Nowak
fonte
71
Em um Mac, onde jdk6 e jdk7 estão instalados, isso pode ser forçado em ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank
3
jdk8 também pode ser usado para obter o cumprimento JDK7
Wolfgang Fahl
3
lembre-se de recarregar ~ / .profile no mac com:source ~/.profile
Caio Iglesias
Isso provavelmente funciona para muitas coisas, mas não é suficiente para o Maven e certamente não para o plug-in do compilador maven. Verifique a resposta de Mike para sua própria pergunta aqui: stackoverflow question 24705877 Isso resolveu o problema para mim, tanto na linha de comando E no eclipse. Além disso, a resposta do @LinGao à pergunta 2503658 do stackoverflow e o uso da variável $ JAVACMD podem ajudar.
Litome 26/10/15
42

Além de definir JAVA_HOMEa variável de ambiente, você precisa garantir que está usando o JDK correto na configuração de execução do Maven. Vá para Executar -> Executar Configuração , selecione sua configuração do Maven Build, vá para a guia JRE e defina o JRE de tempo de execução correto.

Configuração de execução do Maven

Stanley
fonte
+1, eu sabia que estava esquecendo de atualizar algo ... A opção padrão (para mim) ao criar uma configuração era o "JRE alternativo". Se mais alguém passar por isso, verifique se o seu plugin e as configurações do maven estão atualizados corretamente!
king14nyr
Eu tinha o JAVA_HOME correto para Java 8, mas ainda estava faltando isso. Você resolveu o meu problema, graças
dtortola
3

No IntelliJ IDEA, isso aconteceu comigo quando eu importei um projeto que estava funcionando bem e rodando com o Java 1.7. Aparentemente, eu não tinha notificado o IntelliJ de que o java 1.7 havia sido instalado na minha máquina e não estava encontrando o meu $JAVA_HOME.

Em um Mac, isso é resolvido por:

Clique com o botão direito do mouse no módulo | Configurações do módulo | Projeto

e adicionando o SDK 1.7, selecionando "Novo" no SDK do projeto.

Então vá para o menu principal do IntelliJ IDEA | Preferências Maven Corredor

e selecione o JRE correto. No meu caso, ele foi atualizado corretamente Use o Project SDK, que agora era 1.7.

user1978019
fonte
Observe que há pelo menos Configurações e preferências do projeto para Intellij em um Mac. Eu tive que ir para Configurações -> Compilar Exec, Implantar -> Compilador Java e, em seguida, definir a versão do bytecode do projeto, conforme necessário.
Opentuned
1

Quando o maven estiver trabalhando fora do Eclipse, mas fornecendo esse erro após uma alteração no JDK, vá para a configuração de execução do Maven e, na parte inferior da página principal, há a opção 'Maven Runtime'. O meu estava usando o Embedded Maven, então, depois de trocá-lo para usar meu maven externo, funcionou.

djb
fonte
onde está a configuração do Maven Run, por favor?
R Claven
1
Clique com o botão direito do mouse em seu build.xml, vá para 'Executar como' e 'Executar Configuração' deve ser a última opção. Se você percorrer os tipos de configurações de execução, um é 'Maven Build' e tem uma opção para escolher o 'Maven Runtime'. Existe um botão 'configure' ao lado dele
djb 5/15
0

Isso provavelmente funciona para muitas coisas, mas não é suficiente para o Maven e certamente não para o plug-in do compilador maven.

Verifique a resposta de Mike para sua própria pergunta aqui: stackoverflow question 24705877

Isso resolveu o problema para mim, tanto na linha de comando quanto no eclipse.

Além disso, a resposta do @LinGao à pergunta 2503658 do stackoverflow e o uso da variável $ JAVACMD podem ajudar, mas eu mesmo não a testei.

Litome
fonte