Als ich eine Spring Boot-Anwendung erstellte, konnte ich Dateien im Stammverzeichnis des Projekts sehen mvnwund mvnw.cmdspeichern. Was ist der Zweck dieser beiden Dateien?
Als ich eine Spring Boot-Anwendung erstellte, konnte ich Dateien im Stammverzeichnis des Projekts sehen mvnwund mvnw.cmdspeichern. Was ist der Zweck dieser beiden Dateien?
Antworten:
Diese Dateien stammen aus dem Maven-Wrapper . Es funktioniert ähnlich wie der Gradle-Wrapper .
Auf diese Weise können Sie das Maven-Projekt ausführen, ohne dass Maven installiert und auf dem Pfad vorhanden ist. Es lädt die richtige Maven-Version herunter, wenn sie nicht gefunden wird (soweit ich weiß, standardmäßig in Ihrem Benutzer-Home-Verzeichnis).
Die mvnwDatei ist für Linux (Bash) und die mvnw.cmdfür die Windows-Umgebung.
Führen Sie den folgenden Befehl aus, um alle erforderlichen Maven Wrapper-Dateien zu erstellen oder zu aktualisieren:
mvn -N io.takari:maven:wrapper
Um eine andere Version von maven zu verwenden, können Sie die Version wie folgt angeben:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Beide Befehle erfordern Maven PATH(fügen Sie den Pfad zu maven binzu Pathauf Systemvariablen) , wenn Sie bereits mvnw in Ihrem Projekt haben Sie verwenden können , ./mvnwstatt mvnin den Befehlen.
Der Befehl mvnwverwendet Maven, ~/.m2/wrapperauf das bei der ersten Verwendung standardmäßig heruntergeladen wird .
Die URL mit Maven wird in jedem Projekt unter folgender Adresse angegeben .mvn/wrapper/maven-wrapper.properties:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
Rufen Sie zum Aktualisieren oder Ändern der Maven-Version Folgendes auf (beachten Sie dies --non-recursivebei Projekten mit mehreren Modulen):
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
oder einfach .mvn/wrapper/maven-wrapper.propertiesmanuell ändern .
So generieren Sie Wrapper mit Maven von Grund auf neu (Sie müssen ihn bereits PATHausführen:
mvn io.takari:maven:wrapper -Dmaven=3.3.9
Der Maven Wrapper ist eine ausgezeichnete Wahl für Projekte, die eine bestimmte Version von Maven benötigen (oder für Benutzer, die Maven überhaupt nicht installieren möchten). Anstatt viele Versionen davon im Betriebssystem zu installieren, können wir einfach das projektspezifische Wrapper-Skript verwenden.
mvnw: Es ist ein ausführbares Unix-Shell-Skript, das anstelle eines vollständig installierten Maven verwendet wird
mvnw.cmd : Es ist für Windows-Umgebung
Anwendungsfälle
Der Wrapper sollte mit verschiedenen Betriebssystemen funktionieren, z.
Danach können wir unsere Ziele für das Unix-System folgendermaßen ausführen:
./mvnw clean install
Und der folgende Befehl für Batch:
./mvnw.cmd clean install
Wenn der angegebene Maven nicht in den Wrapper-Eigenschaften enthalten ist, wird er heruntergeladen und im Ordner $USER_HOME/.m2/wrapper/distsdes Systems installiert.
Maven Wrapper Plugin
Maven Wrapper-Plugin für die automatische Installation in einem einfachen Spring Boot-Projekt.
Zuerst müssen wir in den Hauptordner des Projekts gehen und diesen Befehl ausführen:
mvn -N io.takari:maven:wrapper
Wir können auch die Version von Maven angeben:
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
Die Option -N bedeutet –nicht rekursiv, sodass der Wrapper nur auf das Hauptprojekt des aktuellen Verzeichnisses angewendet wird, nicht auf Submodule.
Die mit Abstand beste Option wäre heutzutage die Verwendung eines Maven-Containers als Builder-Tool. Ein mvn.shsolches Skript würde ausreichen:
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvnBefehl für die Maven-Operation verwendet, obwohl ich ihn./mvnwfür den gleichen Zweck verwenden konnte.