Java-Version in Maven einstellen

Java-Version in Maven einstellen

1. Überblick

In diesem kurzen Tutorial zeigen wir, wie manset the Java version in Maven macht.

Bevor wir weitermachen, können wircheck the default JDK version of Maven. Wenn Sie den Befehlmvn -vausführen, wird die Java-Version angezeigt, in der Maven ausgeführt wird.

Weitere Lektüre:

Leitfaden für Maven-Profile

Erfahren Sie, wie Sie mit Maven-Profilen arbeiten, um verschiedene Build-Konfigurationen erstellen zu können.

Read more

Maven Compiler Plugin

Erfahren Sie, wie Sie das Maven-Compiler-Plugin verwenden, mit dem der Quellcode eines Maven-Projekts kompiliert wird.

Read more

2. Verwenden Sie das Compiler Plugin

Wir können die gewünschte Java-Version incompiler plugin angeben.

2.1. Compiler Plugin

Die erste Option ist das Einstellen der Version in den Eigenschaften des Compiler-Plugins:


    1.8
    1.8

Der Maven-Compiler akzeptiert diesen Befehl mit den Sversionen -target und -source . Wenn wir die Java 8-Sprachfunktionen verwenden möchten, sollten -source auf1.8 gesetzt werden.

Damit die kompilierten Klassen mit JVM 1.8 kompatibel sind, sollte der Wert von -target1.8 sein.

Der Standardwert für beide ist 1.6.

Alternativ können wir das Compiler-Plugin auch direkt konfigurieren:


    
        maven-compiler-plugin
        
            1.8
            1.8
        
    

Dasmaven-compiler-plugin verfügt außerdem über zusätzliche Konfigurationseigenschaften, mit denen wir über die Versionen-source und-target hinaus mehr Kontrolle über den Kompilierungsprozess haben.

2.2  Java 9 and Beyond

Weiterhinstarting from JDK 9 version, we can use a new -release command-line option. Dieses neue Argument konfiguriert den Compiler automatisch so, dass Klassendateien erstellt werden, die mit der Implementierung der angegebenen Plattformversion verknüpft sind.

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

Dies bedeutet, dass wir unsere Anwendung nicht auf älteren Versionen der Plattform ausführen können. Um die Programme für ältere Java-Versionen zu kompilieren und auszuführen, müssen Sie außerdem die Option-bootclasspathangeben.

Für eine korrekte Kreuzkompilierung ersetzt die neue Option-release drei Flags:-source,-target and -bootclasspath.

Nachdem wir unsere Beispiele transformiert haben, können wir für die Plugin-Eigenschaften Folgendes deklarieren:


    7

Und für diemaven-compiler-plugin ab der Version 3.6 können wir schreiben:


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

Wie wir bemerken, istwe can add the Java version in a new <release> attribute. In diesem Beispiel kompilieren wir unsere Anwendung für Java 7.

Darüber hinaus benötigen wir kein JDK 7 auf unserem Computer. Java 9 enthält bereits alle Informationen zum Verknüpfen der neuen Sprachfunktionen mit JDK 7.

3. Spring Boot-Spezifikation

Spring Boot-Anwendungen geben die JDK-Version in denproperties-Tags inthe pom.xml file an.

Zuerst müssen wirspring-boot-starter-parent als übergeordnetes Element zu unserem Projekt hinzufügen:


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

Mit diesem übergeordneten POM können wir Standard-Plugins und mehrere Eigenschaften einschließlich der Java-Version konfigurieren: Standardmäßig ist die Java-Version1.8.

Wir können jedoch die Standardversion des übergeordneten Elements überschreiben, indem wir die Eigenschaftjava.versionangeben:


    1.9

By setting the java.version property we declare that the source and the target Java versions are both equal to 1.9.

Vor allem ist zu beachten, dass es sich bei dieser Eigenschaft um eine Spring Boot-Spezifikation handelt. Zusätzlichstarting from the Spring Boot 2.0, Java 8 is the minimum version.

Dies bedeutet, dass wir Spring Boot für die älteren JDK-Versionen nicht verwenden oder konfigurieren können.

4. Fazit

Dieses kurze Tutorial zeigt, wie Sie die Java-Version in unserem Maven-Projekt einstellen können.

Zusammenfassend:

  • Die Verwendung von<java.version> ist nur mit der Spring Boot-Anwendung möglich

  • In einfachen Fällen solltenmaven.compiler.source andmaven.compiler.target Eigenschaften am besten passen

  • Um mehr Kontrolle über den Kompilierungsprozess zu haben, verwenden Sie die Konfigurationseinstellungen vonmaven-compiler-plugin