Heim >Java >javaLernprogramm >Wie geben Sie die Java-Version in Maven für untergeordnete Module an: Eigenschaften vs. Compiler-Plugin?

Wie geben Sie die Java-Version in Maven für untergeordnete Module an: Eigenschaften vs. Compiler-Plugin?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-15 09:52:03567Durchsuche

How do you specify Java version in Maven for child modules: properties vs. compiler plugin?

Java-Version in Maven angeben: Eigenschaften und Compiler-Plugin vergleichen

Einführung

Beim Arbeiten mit Maven die Java-Version angeben Die Version für untergeordnete Module in einem Projekt mit mehreren Modulen muss berücksichtigt werden. In diesem Artikel werden die Unterschiede zwischen dem Festlegen der Java-Version mithilfe von Java-Eigenschaften und dem Maven-Compiler-Plugin untersucht.

Java-Version mithilfe von Eigenschaften festlegen

Die Eigenschaft java.version im < Eigenschaften> Der Abschnitt pom.xml ist für die Verwendung mit Spring Boot konzipiert und legt sowohl die Quell- als auch die Ziel-Java-Version fest:

<properties>
    <java.version>1.8</java.version>
</properties>

Einstellen der Java-Version mithilfe des Compiler-Plugins

Das Maven-Compiler-Plugin bietet zwei Optionen: die Angabe von Quell- und Zielversionen oder die Verwendung des Arguments „Release“.

  • Quelle und Ziel:
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>

Dies entspricht der Verwendung der folgenden Eigenschaften:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
  • Release:

Ab Maven 3.6 kann das Release-Argument sein Wird verwendet, um die Java-Version anzugeben:

<properties>
    <maven.compiler.release>9</maven.compiler.release>
</properties>

Unterschiede

  • Quelle und Ziel vs. Eigenschaften: Sie sind funktional gleichwertig.
  • Release: In Maven 3.8 und höher bietet es eine standardisierte Möglichkeit, alle drei Versionen (Quelle, Ziel und Bootstrap) für Java 9 und höher anzugeben.
  • Spring Boot: java.version ist nur in Spring Boot-Projekten funktionsfähig.

Best Practice

Für Java 8 und niedriger:

  • Verwenden Sie eine der beiden Methoden, um Quelle und Ziel anzugeben.
  • Wenn nur die Quelle angegeben wird, verwendet Maven möglicherweise eine andere Zielversion basierend auf der angegebenen Quelle.

Für Java 9 und höher:

  • Erwägen Sie die Verwendung des Release-Arguments, um konsistente Versionen für Quelle, Ziel und Bootstrap sicherzustellen.

Fork, ausführbare Datei und JAVA_HOME

  • Wenn die JDK-Version JAVA_HOME nicht mit den angegebenen Java-Versionen kompatibel ist, geben Sie fork="true" und executable in der Compiler-Konfiguration an.
  • Es wird nicht empfohlen für Die Quell- und Zielversionen überschreiten die JDK-Version, auf die JAVA_HOME verweist, da das JDK nicht mit einer neueren Spezifikation kompiliert werden kann.

Das obige ist der detaillierte Inhalt vonWie geben Sie die Java-Version in Maven für untergeordnete Module an: Eigenschaften vs. Compiler-Plugin?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn