Définition de la version Java dans Maven

1. Vue d'ensemble

Dans ce rapide tutoriel, nous montrerons comment définir la version Java dans Maven .

Avant d'aller de l'avant, nous pouvons vérifier la version JDK par défaut de Maven . L'exécution de la commande mvn -v affichera la version Java dans laquelle Maven s'exécute.

2. Utilisez le plug-in du compilateur

Nous pouvons spécifier la version Java souhaitée dans le plugin du compilateur.

2.1. Plugin du compilateur

La première option consiste à définir la version dans les propriétés du plugin du compilateur:

 1.8 1.8 

Le compilateur Maven accepte cette commande avec les versions - cible et - source . Si nous voulons utiliser les fonctionnalités du langage Java 8, la source - doit être définie sur 1.8 .

De plus, pour que les classes compilées soient compatibles avec JVM 1.8, la valeur cible doit être 1,8 .

La valeur par défaut pour les deux est la version 1.6.

Alternativement, nous pouvons configurer le plugin du compilateur directement:

  maven-compiler-plugin  1.8 1.8   

Le plugin maven-compiler-plugin a également des propriétés de configuration supplémentaires qui nous permettent d'avoir plus de contrôle sur le processus de compilation au - delà des versions -source et -target .

2.2 Java 9 et au-delà

De plus, à partir de la version JDK 9, nous pouvons utiliser une nouvelle option de ligne de commande -release . Ce nouvel argument configurera automatiquement le compilateur pour produire des fichiers de classe qui seront liés à l'implémentation de la version de plateforme donnée.

Par défaut, les options -source et -target ne garantissent pas une compilation croisée .

Cela signifie que nous ne pouvons pas exécuter notre application sur les anciennes versions de la plateforme. De plus, pour compiler et exécuter les programmes pour les anciennes versions de Java, nous devons également spécifier l' option -bootclasspath .

Pour effectuer une compilation croisée correctement, la nouvelle option -release remplace trois indicateurs: -source, -target et -bootclasspath .

Après avoir transformé nos exemples, pour les propriétés du plugin, nous pouvons déclarer:

 7 

Et pour le maven-compiler-plugin à partir de la version 3.6, nous pouvons écrire:

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

Comme nous le remarquons, nous pouvons ajouter la version Java dans un nouveauattribut . Dans cet exemple, nous compilons notre application pour Java 7.

De plus, nous n'avons pas besoin d'un JDK 7 installé sur notre machine. Java 9 contient déjà toutes les informations pour lier les nouvelles fonctionnalités du langage avec JDK 7.

3. Spécifications de la botte à ressort

Les applications Spring Boot spécifient la version JDK à l'intérieur des balises de propriétés dans le fichier pom.xml .

Tout d'abord, nous devons ajouter spring-boot-starter-parent comme parent à notre projet:

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

Ce POM parent nous permet de configurer des plugins par défaut et de multiples propriétés dont la version Java: Par défaut, la version Java est la 1.8 .

Cependant, nous pouvons remplacer la version par défaut du parent en spécifiant la propriété java.version :

 1.9 

En définissant la propriété java.version , nous déclarons que les versions Java source et cible sont toutes deux égales à 1.9 .

Par-dessus tout, nous devons garder à l'esprit que cette propriété est une spécification Spring Boot. De plus, à partir de Spring Boot 2.0, Java 8 est la version minimale.

Cela signifie que nous ne pouvons pas utiliser ou configurer Spring Boot pour les anciennes versions de JDK.

4. Conclusion

Ce tutoriel rapide montre les moyens possibles de définir la version Java dans notre projet Maven.

En résumé:

  • En utilisant n'est possible qu'avec l'application Spring Boot
  • Pour les cas simples, les propriétés maven.compiler.source et maven.compiler.target devraient être les meilleures
  • Enfin, pour avoir plus de contrôle sur le processus de compilation, utilisez les paramètres de configuration de maven-compiler-plugin