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
Freigeben: 2024-11-15 09:52:03
Original
563 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
  • 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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage