De Java-versie instellen in Maven

1. Overzicht

In deze korte tutorial laten we zien hoe je dat doet stel de Java-versie in Maven.

Voordat we verder gaan, kunnen we controleer de standaard JDK-versie van Maven. Het uitvoeren van het mvn -v commando toont de Java-versie waarin Maven draait.

2. Gebruik de compiler-plug-in

We kunnen de gewenste Java-versie specificeren in de compiler-plug-in.

2.1. Compiler-plug-in

De eerste optie is het instellen van de versie in de eigenschappen van de compilerplug-in:

 1.8 1.8 

De Maven-compiler accepteert deze opdracht met -doelwit en -bron versies. Als we de Java 8-taalfuncties willen gebruiken, de -bron moet worden ingesteld op 1.8.

Om ervoor te zorgen dat de gecompileerde klassen compatibel zijn met JVM 1.8, moet de -doelwit waarde zou moeten zijn 1.8.

De standaardwaarde voor beide is versie 1.6.

Als alternatief kunnen we de compiler-plug-in rechtstreeks configureren:

  maven-compiler-plugin 1.8 1.8 

De maven-compiler-plugin heeft ook aanvullende configuratie-eigenschappen waarmee we meer controle hebben over het compilatieproces daarbuiten -bron en -doelwit versies.

2.2 Java 9 en verder

Verder vanaf JDK 9-versie kunnen we een nieuw -vrijlating opdrachtregeloptie. Dit nieuwe argument zal de compiler automatisch configureren om klassebestanden te produceren die zullen linken tegen de implementatie van de gegeven platformversie.

Standaard is het -bron en -doelwit opties garanderen geen kruiscompilatie.

Dit betekent dat we onze applicatie niet op oudere versies van het platform kunnen draaien. Bovendien moeten we, om de programma's voor oudere Java-versies te compileren en uit te voeren, ook specificeren -bootclasspath keuze.

Om correct te cross-compileren, het nieuwe -vrijlating optie vervangt drie vlaggen: -bron,-target en -bootclasspath.

Na het transformeren van onze voorbeelden, kunnen we voor de plug-in-eigenschappen declareren:

 7 

En voor de maven-compiler-plugin vanaf versie 3.6 kunnen we schrijven:

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

Zoals we opmerken, we kunnen de Java-versie toevoegen in een nieuw attribuut. In dit voorbeeld compileren we onze applicatie voor Java 7.

Sterker nog, we hebben geen JDK 7 nodig die in onze machine is geïnstalleerd. Java 9 bevat al alle informatie om de nieuwe taalfuncties te koppelen aan JDK 7.

3. Spring Boot-specificatie

Spring Boot-applicaties specificeren de JDK-versie in het eigendommen tags in het pom.xml het dossier.

Ten eerste moeten we toevoegen spring-boot-starter-parent als ouder van ons project:

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

Met deze bovenliggende POM kunnen we standaard plug-ins en meerdere eigenschappen configureren, inclusief de Java-versie: Standaard is de Java-versie 1.8.

We kunnen echter de standaardversie van de bovenliggende versie overschrijven door de java.version eigendom:

 1.9 

Door de java.version eigenschap verklaren we dat de bron- en de doel-Java-versies beide gelijk zijn aan 1.9.

We moeten vooral in gedachten houden dat deze eigenschap een Spring Boot-specificatie is. Bovendien, vanaf Spring Boot 2.0 is Java 8 de minimumversie.

Dit betekent dat we Spring Boot niet kunnen gebruiken of configureren voor de oudere JDK-versies.

4. Conclusie

Deze korte tutorial demonstreert de mogelijke manieren om de Java-versie in ons Maven-project in te stellen.

Samengevat:

  • Gebruik makend van is alleen mogelijk met de Spring Boot-applicatie
  • Voor eenvoudige gevallen maven.compiler.source en maven.compiler.target eigenschappen moeten het best passen
  • Om meer controle over het compilatieproces te hebben, gebruikt u ten slotte het maven-compiler-plugin configuratie-instellingen