Configuración de la versión de Java en Maven

1. Información general

En este tutorial rápido, mostraremos cómo configurar la versión de Java en Maven .

Antes de seguir adelante, podemos verificar la versión JDK predeterminada de Maven . La ejecución del comando mvn -v mostrará la versión de Java en la que se ejecuta Maven.

2. Utilice el complemento del compilador

Podemos especificar la versión de Java deseada en el complemento del compilador.

2.1. Complemento del compilador

La primera opción es configurar la versión en las propiedades del complemento del compilador:

 1.8 1.8 

El compilador de Maven acepta este comando con las versiones - target y - source . Si queremos utilizar las características del lenguaje Java 8, la fuente debe establecerse en 1.8 .

Además, para que las clases compiladas sean compatibles con JVM 1.8, el valor - objetivo debe ser 1.8 .

El valor predeterminado para ambos es la versión 1.6.

Alternativamente, podemos configurar el complemento del compilador directamente:

  maven-compiler-plugin  1.8 1.8   

El compilador maven-plugin también tiene propiedades de configuración adicionales que nos permiten tener un mayor control sobre el proceso de compilación más allá -fuente y -target versiones.

2.2 Java 9 y posteriores

Además, a partir de la versión JDK 9, podemos usar una nueva opción de línea de comandos de lanzamiento . Este nuevo argumento configurará automáticamente el compilador para producir archivos de clase que se vincularán con la implementación de la versión de plataforma dada.

Por defecto, el -fuente y -target opciones no garantizan una compilación cruzada .

Esto significa que no podemos ejecutar nuestra aplicación en versiones anteriores de la plataforma. Además, para compilar y ejecutar los programas para versiones anteriores de Java, también necesitamos especificar la opción -bootclasspath .

Para cruzar-compile correctamente, el nuevo -release opción reemplaza tres banderas: -source, -target y -bootclasspath .

Después de transformar nuestros ejemplos, para las propiedades del complemento podemos declarar:

 7 

Y para maven-compiler-plugin a partir de la versión 3.6 podemos escribir:

 org.apache.maven.plugins maven-compiler-plugin 3.8.0  7  

Como notamos, podemos agregar la versión de Java en un nuevoatributo . En este ejemplo, compilamos nuestra aplicación para Java 7.

Aún más, no necesitamos un JDK 7 instalado en nuestra máquina. Java 9 ya contiene toda la información para vincular las nuevas funciones del lenguaje con JDK 7.

3. Especificación de Spring Boot

Las aplicaciones Spring Boot especifican la versión de JDK dentro de las etiquetas de propiedades en el archivo pom.xml .

Primero, necesitamos agregar spring-boot-starter-parent como padre a nuestro proyecto:

 org.springframework.boot spring-boot-starter-parent 

Este POM padre nos permite configurar complementos predeterminados y múltiples propiedades, incluida la versión de Java: por defecto, la versión de Java es 1.8 .

Sin embargo, podemos anular la versión predeterminada del padre especificando la propiedad java.version :

 1.9 

Al establecer la propiedad java.version , declaramos que las versiones de Java de origen y de destino son iguales a 1.9 .

Sobre todo, debemos tener en cuenta que esta propiedad es una especificación Spring Boot. Además, a partir de Spring Boot 2.0, Java 8 es la versión mínima.

Esto significa que no podemos usar o configurar Spring Boot para las versiones anteriores de JDK.

4. Conclusión

Este tutorial rápido demuestra las posibles formas de configurar la versión de Java en nuestro proyecto Maven.

En resumen:

  • Utilizando solo es posible con la aplicación Spring Boot
  • Para casos simples, las propiedades maven.compiler.source y maven.compiler.target deberían ser las más adecuadas
  • Finalmente, para tener más control sobre el proceso de compilación, utilice los ajustes de configuración de maven-compiler-plugin