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