Podemos especificar a versão Java desejada emcompiler plugin.
2.1. Plugin do compilador
A primeira opção é definir a versão nas propriedades do plug-in do compilador:
1.81.8
O compilador Maven aceita este comando com -targete -source versões. Se quisermos usar os recursos da linguagem Java 8, o -source deve ser definido como1.8.
Além disso, para que as classes compiladas sejam compatíveis com JVM 1.8, o valor de -target deve ser1.8.
O valor padrão para os dois é a versão 1.6.
Como alternativa, podemos configurar o plug-in do compilador diretamente:
maven-compiler-plugin1.81.8
Omaven-compiler-plugin também tem propriedades de configuração adicionais que nos permitem ter mais controle sobre o processo de compilação além das versões-sourcee-target.
2.2 Java 9 and Beyond
Além disso,starting from JDK 9 version, we can use a new -release command-line option. Esse novo argumento configurará automaticamente o compilador para produzir arquivos de classe que serão vinculados à implementação da versão da plataforma especificada.
By default, the -source and -target options don’t guarantee a cross-compilation.
Isso significa que não podemos executar nosso aplicativo em versões mais antigas da plataforma. Além disso, para compilar e executar os programas para versões anteriores do Java, também precisamos especificar a opção-bootclasspath.
Para compilar corretamente, a nova opção-release substitui três sinalizadores:-source,-target and -bootclasspath.
Depois de transformar nossos exemplos, para as propriedades do plugin, podemos declarar:
7
E paramaven-compiler-plugin a partir da versão 3.6, podemos escrever:
Como notamos,we can add the Java version in a new <release> attribute. Neste exemplo, compilamos nosso aplicativo para Java 7.
Ainda mais, não precisamos de um JDK 7 instalado em nossa máquina. O Java 9 já contém todas as informações para vincular os novos recursos de linguagem ao JDK 7.
3. Especificação Spring Boot
Os aplicativos Spring Boot especificam a versão JDK dentro das tagsproperties no arquivothe pom.xml .
Primeiro, precisamos adicionarspring-boot-starter-parent como um pai para o nosso projeto:
Este POM pai nos permite configurar plug-ins padrão e várias propriedades, incluindo a versão Java: Por padrão, a versão Java é1.8.
No entanto, podemos substituir a versão padrão do pai especificando a propriedadejava.version:
1.9
By setting the java.version property we declare that the source and the target Java versions are both equal to 1.9.
Acima de tudo, devemos ter em mente que essa propriedade é uma especificação de inicialização da primavera. Além disso,starting from the Spring Boot 2.0, Java 8 is the minimum version.
Isso significa que não podemos usar ou configurar Spring Boot para as versões mais antigas do JDK.
4. Conclusão
Este tutorial rápido demonstra as possíveis maneiras de definir a versão Java em nosso projeto Maven.
Em suma:
Usar<java.version> só é possível com o aplicativo Spring Boot
Para casos simples,maven.compiler.source areiamaven.compiler.target properties deve ser o melhor ajuste
Finalmente, para ter mais controle sobre o processo de compilação, use as definições de configuraçãomaven-compiler-plugin