Minhas listas de arquivos pom
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
No entanto mvn clean install
, eu recebo
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
/usr/bin/java -version
é ( which java
aponta aqui)
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
javac
também aponta para a versão correta do Java
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac
Nesta máquina, estou usando zsh
( echo $0
retorna -zsh
)
No meu .zshrc
, eu defini:
33 # HOME
34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
35 SCALA_HOME=/Library/Scala/current
36 FORGE_HOME=~/tools/forge/
37
38 # PATH
39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
40 PATH=${PATH}:${JAVA_HOME}/bin
41 PATH=${PATH}:/bin/
42 PATH=${PATH}:/sbin/
43 PATH=${PATH}:/usr/bin/
44 PATH=${PATH}:/usr/sbin/
45 PATH=${PATH}:/opt/local/bin/
46 PATH=${PATH}:/opt/local/sbin/
47 PATH=${PATH}:/usr/local/git/bin
48 PATH=${PATH}:/usr/local/git/sbin
49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
50 PATH=${PATH}:${SCALA_HOME}/bin
51 PATH=${PATH}:${FORGE_HOME}/bin
52
53 export PATH
Quando estou executando mvn clean install --debug
, vejo que, de fato, uso Java 6
1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
2 Maven home: /usr/share/maven
3 Java version: 1.6.0_35, vendor: Apple Inc.
4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Onde poderia ser definido? Tenho origem (d) meu .zshrc várias vezes.
/usr/bin
primeiro na sua lista de diretórios. Tentejavac -version
sem especificar um diretório.javac 1.7.0_10
echo $JAVA_HOME
te diz?--debug
, ele deverá informar a linha de comando exata que está sendo usada para executarjavac
(junto com várias outras coisas). O que isso diz?Respostas:
Verifique o
mvn
script na sua instalação do maven para ver como ele está construindo o comando. Talvez você ou outra pessoa tenha codificado um códigoJAVA_HOME
lá e tenha esquecido.fonte
mvn
script não era compatível com minha instalação OSX do JDK 7 da Oracle, e eu não fiz nada sofisticado em configurá-lo (o script procura uma pastaLibrary/Java/JavaVirtualMachines/CurrentJDK
que não existia para mim (o que existia é emjdk1.7.0_25.jdk
vez deCurrentJDK
). uma correção elegante, mas eu só codificado a exportação e agora ele funciona (PS: maven no OSX está em/usr/share/maven/bin/mvn
)/usr/local/bin/mvn
tente usar uma versão mais recente do plug-in do compilador maven:
Além disso, especificar melhor a codificação do arquivo de origem no maven é feito globalmente:
Edição : Como esta resposta ainda está recebendo atenção, eu gostaria de salientar que os valores mais recentes (a partir da última edição) são 3,2 para o plug-in do compilador maven e 1,8 para java, pois as perguntas sobre a compilação do código java 8 via maven estão vinculadas a apareça em breve :-)
fonte
Eu tive o mesmo problema e, para resolver isso, sigo este artigo do blog: http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/
tks especiais para @mkyong
EDIT: Agora estou usando: jEnv + sdkman
fonte
Verifique pom.xml nas tags abaixo
deve apontar a versão jdk necessária
fonte
Você precisa verificar a versão do Maven:
Você encontrará a versão Java que o Maven usa para compilação. Pode ser necessário redefinir JAVA_HOME, se necessário.
fonte
Eu tive o mesmo problema. Descobri que isso ocorre porque o script Maven examina o link CurrentJDK abaixo e encontra um JDK 1.6. Mesmo se você instalar o JDK mais recente, isso não será resolvido. Enquanto você pode definir JAVA_HOME no script $ HOME / .bash_profile, escolhi corrigir o link simbólico da seguinte maneira:
Observe que o CurrentJDK aponta para 1.6.0.jdk
Para corrigi-lo, executei os seguintes comandos (você deve verificar sua versão instalada e adaptar em conformidade).
fonte
Diagnóstico:
Você pode ver qual versão java o Maven usa executando "mvn --version"
Solução para o Debian:
O script mvn define a variável env JAVA_HOME internamente procurando javac (qual javac). Portanto, se você tiver várias versões java instaladas simultaneamente, por exemplo, JDK 6 e JDK 7 e usar o sistema Debian Alternatives para escolher entre elas, mesmo que tenha alterado a alternativa de "java" para JDK 7, o mvn ainda utilizará o JDK 6. Você tem que mudar a alternativa para "javac" também. Por exemplo:
EDITAR:
Na verdade, uma solução ainda melhor é usar o update-java-alternative (por exemplo)
conforme detalhado em https://wiki.debian.org/JavaPackage , porque isso mudará todas as alternativas para várias ferramentas Java (há uma dúzia ou mais).
fonte
Você poderia tentar um plugin mais recente; no site maven:
Também vi o seguinte:
fonte
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project divs: Fatal error compiling: invalid target release: 1.7 -
Tente alterar as configurações do compilador Java em Propriedades no Eclipse-
Ir para: Preferências-> Java-> Compilador-> Nível de Conformidade do Compilador-> 1.7 Aplicar Ok
Reinicie o IDE.
Confirme a configuração do compilador para o projeto- Goto: Propriedades do projeto-> Java Compiler-> Desmarque (Use Conformidade no ambiente de execução 'JavaSE-1.6' no caminho Java Build). E selecione 1.7 na lista suspensa. (Ignore se já estiver 1,7)
Reinicie o IDE.
Se o problema persistir, execute casos de teste individuais usando o comando no terminal
fonte
Não sei ao certo o que o sistema operacional está em uso aqui, mas você pode eliminar muitas versões java futzing un debian / ubuntu com update-java-alternative para definir todo o sistema jvm padrão.
Para definir um novo, use:
Não é necessário definir JAVA_HOME para a maioria dos aplicativos.
fonte
clique com o botão direito do mouse no seu projeto no eclipse e abra "Run Configurations". verifique a versão do jre lá. algumas vezes isso não muda por padrão no eclipse, mesmo após alterar a versão no caminho de construção.
fonte
Para uma compilação específica que requer uma
/etc/alternatives/java
JVM (não padrão ), considere prefixar omvn
comandoJAVA_HOME
como este,Aqui assumimos que o padrão é Java 8, enquanto que para o projeto específico em questão exigimos o Java 7.
fonte
{JAVA_1_4_HOME} / bin / javacyou pode tentar também ...
fonte
Ok, eu também resolvi esse problema sozinho. É mais importante o seu JAVA_HOME, se você não tiver uma versão inferior ou nenhuma comparada às propriedades de origem / destino do plug-in Maven, você receberá esse erro.
Certifique-se de ter uma boa versão em seu JAVA_HOME e incluí-la em seu PATH.
fonte
Você pode estar especificando uma versão errada do java. versão-java (no seu terminal) para verificar a versão do java que você está usando. Vá para o maven-compile-plugin para obter a versão mais recente do compilador maven. Seu plugin pode aparecer assim se você estiver usando o java 6 e a versão mais recente do plugin maven compiler for 3.1
fonte
Nenhuma das respostas anteriores resolveu completamente meu caso de uso.
Necessário para remover o diretório que estava sendo construído. Limpar \ limpo. E depois reinstale. Parece um problema de permissões silenciosas.
fonte
Eu tive esse problema no IntelliJ IDEA 14 até entrar no menu Arquivo -> Estrutura do projeto, alterando o SDK do projeto para 1,7 e o nível de idioma do projeto para 7.
fonte
Eu tive esse problema ao trabalhar com o eclipse, tive que alterar o caminho de construção do projeto para que ele se refira ao jre 7
fonte