Indstilling af Java-versionen i Maven
1. Oversigt
I denne hurtige vejledning viser vi, hvordan du indstiller Java-versionen i Maven.
Før vi går videre, kan vi tjekke standard JDK-versionen af Maven. Kører mvn -v kommandoen viser den Java-version, som Maven kører i.
Yderligere læsning:
Guide til Maven-profiler
Lær, hvordan du arbejder med Maven-profiler for at kunne oprette forskellige build-konfigurationer.Læs mere →Maven Compiler Plugin
Lær hvordan du bruger Maven compiler plugin, der bruges til at kompilere kildekoden til et Maven projekt.Læs mere →2. Brug Compiler Plugin
Vi kan angive den ønskede Java-version i compiler-pluginnet.
2.1. Kompiler-plugin
Den første mulighed er at indstille versionen i compiler plugin-egenskaber:
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
Maven-kompileren accepterer denne kommando med –target og –kilde versioner. Hvis vi ønsker at bruge Java 8-sprogfunktionerne, er –kilden skal indstilles til 1.8 .
For at de kompilerede klasser skal være kompatible med JVM 1.8, er –målet værdien skal være 1,8 .
Standardværdien for dem begge er 1.6-versionen.
Alternativt kan vi konfigurere compiler plugin direkte:
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
maven-compiler-plugin har også yderligere konfigurationsegenskaber, der tillader os at have mere kontrol over kompileringsprocessen ud over -source og -mål versioner.
2.2. Java 9 and Beyond
Ydermere, fra JDK 9-versionen, kan vi bruge en ny -release kommandolinjeindstilling. Dette nye argument vil automatisk konfigurere compileren til at producere klassefiler, der vil linke mod implementeringen af den givne platformversion.
Som standard er -kilden og -mål muligheder garanterer ikke en krydskompilering.
Det betyder, at vi ikke kan køre vores applikation på ældre versioner af platformen. Derudover, for at kompilere og køre programmerne til ældre Java-versioner, skal vi også specificere -bootclasspath mulighed.
For at krydskompilere korrekt, den nye -udgivelse option erstatter tre flag:-source, -target og -bootclasspath .
Efter at have transformeret vores eksempler, kan vi erklære følgende for plugin-egenskaberne:
<properties>
<maven.compiler.release>7</maven.compiler.release>
</properties>
Og for maven-compiler-plugin fra 3.6-versionen kan vi skrive dette:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>7</release>
</configuration>
</plugin>
Bemærk, at vi kan tilføje Java-versionen i en ny
Desuden behøver vi ikke en JDK 7 installeret i vores maskine. Java 9 indeholder allerede al information til at forbinde de nye sprogfunktioner med JDK 7.
3. Spring Boot Specifikation
Spring Boot-applikationer angiver JDK-versionen inde i egenskaberne tags i pom.xml fil.
Først skal vi tilføje spring-boot-starter-parent som forælder til vores projekt:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
</parent>
Denne overordnede POM giver os mulighed for at konfigurere standard plugins og flere egenskaber inklusive Java-versionen - som standard er Java-versionen 1.8 .
Vi kan dog tilsidesætte standardversionen af forælderen ved at angive java.version ejendom:
<properties>
<java.version>9</java.version>
</properties>
Ved at indstille java.version egenskab, erklærer vi, at kilde- og Java-målversionerne begge er lig med 1.9 .
Frem for alt skal vi huske på, at denne egenskab er en fjederstøvlespecifikation. Derudoverfra Spring Boot 2.0 er Java 8 minimumsversionen.
Det betyder, at vi ikke kan bruge eller konfigurere Spring Boot til de ældre JDK-versioner.
4. Konklusion
Denne hurtige tutorial viste de mulige måder at indstille Java-version i vores Maven-projekt.
Her er en oversigt over de vigtigste takeaways:
- Brug af
er kun muligt med Spring Boot-applikationen. - For simple tilfælde, maven.compiler.source og maven.compiler.target egenskaber skal passe bedst.
- Til sidst, for at have mere kontrol over kompileringsprocessen, skal du bruge maven-compiler-plugin konfigurationsindstillinger.