Définition de la version Java dans Maven

Définition de la version Java dans Maven

1. Vue d'ensemble

Dans ce rapide tutoriel, nous allons montrer commentset the Java version in Maven.

Avant d'aller de l'avant, nous pouvonscheck the default JDK version of Maven. L'exécution de la commandemvn -v affichera la version Java dans laquelle Maven s'exécute.

Lectures complémentaires:

Guide des profils Maven

Apprenez à travailler avec les profils Maven pour pouvoir créer différentes configurations de construction.

Read more

Plugin de compilation Maven

Apprenez à utiliser le plug-in du compilateur Maven, utilisé pour compiler le code source d'un projet Maven.

Read more

2. Utilisez le plug-in du compilateur

Nous pouvons spécifier la version Java souhaitée dans lescompiler plugin.

2.1. Plugin du compilateur

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


    1.8
    1.8

Le compilateur Maven accepte cette commande avec les versions -target et -source . Si nous voulons utiliser les fonctionnalités du langage Java 8, les -source doivent être définis sur1.8.

De plus, pour que les classes compilées soient compatibles avec JVM 1.8, la valeur -target doit être1.8.

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

Alternativement, nous pouvons configurer le plugin de compilation directement:


    
        maven-compiler-plugin
        
            1.8
            1.8
        
    

Lemaven-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 and Beyond

De plus,starting from JDK 9 version, we can use a new -release command-line option. Ce nouvel argument configurera automatiquement le compilateur pour produire des fichiers de classe qui seront liés à la mise en œuvre de la version de plate-forme donnée.

By default, the -source and -target options don’t guarantee a cross-compilation.

Cela signifie que nous ne pouvons pas exécuter notre application sur les anciennes versions de la plate-forme. 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 and -bootclasspath.

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


    7

Et pour lesmaven-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,we can add the Java version in a new <release> attribute. 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 permettant de lier les nouvelles fonctionnalités linguistiques à JDK 7.

3. Spécification de la botte à ressort

Les applications Spring Boot spécifient la version JDK à l'intérieur des balisesproperties dans le fichierthe pom.xml .

Tout d'abord, nous devons ajouterspring-boot-starter-parent en tant que parent à notre projet:


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

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 est1.8.

Cependant, nous pouvons remplacer la version par défaut du parent en spécifiant la propriétéjava.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.

Surtout, gardez à l’esprit que cette propriété est une spécification Spring Boot. De plus,starting from the Spring Boot 2.0, Java 8 is the minimum version.

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

4. Conclusion

Ce rapide tutoriel montre les différentes manières de définir la version Java dans notre projet Maven.

En résumé:

  • L'utilisation de<java.version> n'est possible qu'avec l'application Spring Boot

  • Pour les cas simples,maven.compiler.source andmaven.compiler.target properties devrait être le meilleur ajustement

  • Enfin, pour avoir plus de contrôle sur le processus de compilation, utilisez les paramètres de configuration demaven-compiler-plugin