Importei um projeto Maven e ele usou o Java 1.5, embora eu tenha o 1.6 configurado como meu padrão do Eclipse Preferences->Java->Installed JREs
.
Quando mudei o projeto Maven para usar o JRE 1.6, ele ainda apresentava os erros de compilação de quando o projeto estava usando o Java 1.5 (eu descrevi esses erros de compilação anteriormente em: Tenho erros de compilação com m2eclipse, mas não com maven2 na linha de comando - meu m2eclipse está configurado incorretamente? )
Vou excluir o projeto e tentar novamente, mas quero garantir que desta vez use o Java 1.6 desde o início, para ver se isso elimina os problemas de compilação.
Como garantir que o projeto use o Java 1.6 ao importá-lo?
Respostas:
O plug-in m2eclipse não usa os padrões do Eclipse, o plug-in m2eclipse deriva as configurações do POM. Portanto, se você deseja que um projeto Maven seja configurado para usar as configurações do Java 1.6 quando importado no Eclipse, configure-o
maven-compiler-plugin
adequadamente, como já sugeri:Se o seu projeto já tiver sido importado, atualize a configuração do projeto ( clique com o botão direito do mouse no projeto e, em seguida, em Maven V Update Project Configuration ).
fonte
Adicionei isso ao meu pom.xml abaixo da descrição do projeto e funcionou:
fonte
<properties> <maven.compiler.source>9</maven.compiler.source> <maven.compiler.target>9</maven.compiler.target> </properties>
Eu queria adicionar algo à resposta já fornecida. O maven-compiler-plugin por padrão irá compilar seu projeto usando Java 1.5, que é onde o m2e obtém suas informações.
É por isso que você precisa declarar explicitamente o maven-compiler-plugin no seu projeto com algo diferente de 1.5. Seu efetivo
pom.xml
usará implicitamente o conjunto padrão no maven-compiler-pluginpom.xml
.fonte
DEFAULT_SOURCE
eDEFAULT_TARGET
, mas ainda ambos são definidos como 1,5.fonte
Aqui está a causa raiz do java 1.5:
Referência: Plugin do Compilador Apache Mavem
A seguir estão os detalhes:
Pom.xml simples
O plug-in a seguir é obtido de uma versão expandida do POM (Effective POM),
Isso pode ser obtido por esse comando na linha de comando
C:\mvn help:effective-pom
. Acabei de colocar aqui um pequeno trecho em vez de um pom inteiro.Mesmo aqui você não vê onde está definida a versão java, vamos cavar mais ...
Faça o download do plug-in, Apache Maven Compiler Plugin »3.1 como disponível no jar e abra-o em qualquer ferramenta de compactação de arquivos como o 7-zip
Atravesse o frasco e encontre
arquivo dentro da pasta
Agora você verá a seguinte seção no arquivo,
Veja o código acima e descubra as 2 linhas a seguir
Boa sorte.
fonte
quickstart
artefato.Seu JRE provavelmente foi definido na configuração de execução. Siga estas etapas no Eclipse para alterar o JRE de construção.
1) Clique com o botão direito do mouse no projeto e selecione Executar como > Executar configurações
2) Na janela Executar configurações, selecione a configuração de construção do seu projeto no painel esquerdo. À direita, você verá várias guias: Principal, JRE, Atualizar, Origem, ...
3) Clique na guia JRE, você verá algo parecido com isto
4) Por padrão, o JRE padrão de trabalho (o JRE selecionado como padrão em Preferências-> Java-> JREs instalados ) será usado. Se você deseja usar outro JRE instalado, marque a caixa de seleção Alternate JRE e selecione seu JRE preferido no menu suspenso.
fonte
Solução mais simples no Springboot
Darei a você a mais simples, se você usar o Springboot:
Em seguida, clique com o botão direito do mouse em seu projeto Eclipse: Maven> Atualizar projeto> Atualizar configuração do projeto a partir de pom.xml
Isso deve servir.
fonte
Configurações específicas do projeto
Mais um lugar onde isso pode dar errado é nas configurações específicas do projeto, no Eclipse.
propriedades do projeto: clique no seu projeto e siga um destes procedimentos:
clique em "Java Compiler"
Por causa dos requisitos do cliente, permitimos que eles mantivessem nossos projetos na versão 1.6. Quando foi necessário atualizar para o 1.7, tivemos dificuldades porque precisávamos alterar a versão java em todo o lugar:
fonte
Mais um motivo possível se você estiver usando o Tycho e o Maven para criar pacotes configuráveis, que possui um ambiente de execução incorreto (
Bundle-RequiredExecutionEnvironment
) no arquivo de manifesto (manifest.mf
) definido. Por exemplo:No meu caso, tudo estava bem. Os plugins do compilador (maven normal e tycho também) foram definidos corretamente, ainda assim o m2 gerou um nível de conformidade antigo por causa do manifesto. Eu pensei em compartilhar a experiência.
fonte
Eu descobri que meu problema era alguém que confirmou o arquivo .project e .classpath que tinha referências ao Java1.5 como o JRE padrão.
Fechando o projeto, removendo os arquivos e reimportando-o como um projeto Maven, pude configurá-lo adequadamente para usar o espaço de trabalho JRE ou o jdk relevante sem que ele volte para 1,5. Portanto, evite verificar em seu SVN os arquivos .project e .classpath
Espero que isso ajude os outros.
fonte
Se você deseja garantir que projetos recém-criados ou importados no Eclipse usem outra versão java padrão que não seja Java 1.5, é possível alterar a configuração no maven-compiler-plugin.
Nas seguintes linhas:
<source deployment = "java.lang.String" default-value = "1.5"> $ {maven.compiler.source} </source>
<target deployment = "java.lang.String" default-value = "1.5"> $ {maven.compiler.target} </target>
altere o valor padrão para 1.6 ou 1.8 ou o que quiser.
A partir de agora, todos os novos projetos Maven usam a versão java que você especificou.
As informações são da seguinte postagem no blog: https://sandocean.wordpress.com/2019/03/22/directly-generating-maven-projects-in-eclipse-with-java-version-newer-than-1-5/
fonte
Para alterar a versão do JDK, você pode:
1- Projeto> Propriedades
2- Vá para o Java Build Path
3- Em Bibliotecas, selecione JRE System ... e clique em Editar
4- Escolha sua versão apropriada e valide
fonte