Als ich eine Spring Boot-Anwendung erstellte, konnte ich Dateien im Stammverzeichnis des Projekts sehen mvnw
und mvnw.cmd
speichern. Was ist der Zweck dieser beiden Dateien?
quelle
Als ich eine Spring Boot-Anwendung erstellte, konnte ich Dateien im Stammverzeichnis des Projekts sehen mvnw
und mvnw.cmd
speichern. Was ist der Zweck dieser beiden Dateien?
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 mvnw
Datei ist für Linux (Bash) und die mvnw.cmd
fü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 bin
zu Path
auf Systemvariablen) , wenn Sie bereits mvnw in Ihrem Projekt haben Sie verwenden können , ./mvnw
statt mvn
in den Befehlen.
mvn
Befehl für die Maven-Operation verwendet, obwohl ich ihn./mvnw
für den gleichen Zweck verwenden konnte.Der Befehl
mvnw
verwendet Maven,~/.m2/wrapper
auf 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
:Rufen Sie zum Aktualisieren oder Ändern der Maven-Version Folgendes auf (beachten Sie dies
--non-recursive
bei Projekten mit mehreren Modulen):oder einfach
.mvn/wrapper/maven-wrapper.properties
manuell ändern .So generieren Sie Wrapper mit Maven von Grund auf neu (Sie müssen ihn bereits
PATH
ausführen:quelle
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:
Und der folgende Befehl für Batch:
Wenn der angegebene Maven nicht in den Wrapper-Eigenschaften enthalten ist, wird er heruntergeladen und im Ordner
$USER_HOME/.m2/wrapper/dists
des 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:
Wir können auch die Version von Maven angeben:
Die Option -N bedeutet –nicht rekursiv, sodass der Wrapper nur auf das Hauptprojekt des aktuellen Verzeichnisses angewendet wird, nicht auf Submodule.
quelle
Die mit Abstand beste Option wäre heutzutage die Verwendung eines Maven-Containers als Builder-Tool. Ein
mvn.sh
solches Skript würde ausreichen:quelle