Java >> Java tutorial >  >> Tag >> maven

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 attribut. I dette eksempel kompilerer vi vores applikation til Java 7.

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.

Java tag