Wenn ich eine Spring Boot-Anwendung erstellte, konnte ich mvnw
und mvnw.cmd
Dateien im Stammverzeichnis des Projekts sehen. Was ist der Zweck dieser beiden Dateien?Was ist der Zweck von mvnw und mvnw.cmd Dateien?
Antwort
Diese Dateien stammen von Maven wrapper. Es funktioniert ähnlich wie die Gradle wrapper.
Damit können Sie das Maven-Projekt ausführen, ohne Maven installiert und auf dem Pfad angezeigt zu haben. Es lädt die korrekte Maven-Version herunter, wenn sie nicht gefunden wird (soweit ich das standardmäßig in Ihrem Benutzer-Home-Verzeichnis weiß).
Die mvnw
Datei ist für Linux (bash) und die mvnw.cmd
ist für Windows-Umgebung.
erstellen oder alle notwendigen Maven Wrapper-Dateien aktualisieren Sie den folgenden Befehl ausführen:
mvn -N io.takari:maven:wrapper
Um eine diffrent Version von Maven verwenden Sie die Version wie folgt angeben:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Beide Befehle erfordern maven on PATH
, wenn Sie bereits mvnw in Ihrem Projekt haben, können Sie ./mvnw
anstelle von mvn
in den Befehlen verwenden.
Befehl mvnw
verwendet Maven, das standardmäßig bei der ersten Verwendung auf ~/.m2/wrapper
heruntergeladen wird.
URL mit Maven wird in jedem Projekt an .mvn/wrapper/maven-wrapper.properties
angegeben:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
zu aktualisieren oder Maven Version die folgende (nicht vergessen, über --non-recursive
für Multi-Modul-Projekte) aufrufen ändern:
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
oder Ändern Sie einfach .mvn/wrapper/maven-wrapper.properties
manuell.
Um Wrapper von Grund auf mit Maven generieren (müssen Sie es in PATH
laufen bereits haben:..
mvn io.takari:maven:wrapper -Dmaven=3.3.9
Ihre Antwort ist sehr hilfreich, die Maven-Wrapper-Dokumentation prüfe ich wurde mit 'mvn' Befehl für Maven obwohl ich "./mvnw" für den gleichen Zweck verwenden könnte. – shaunthomas999
Danke für die Antwort. Können Sie erklären, wenn dies generiert wird, wie es ist, wenn Sie ein Projekt anfänglich erstellen? Wird es entlang der Linie aktualisiert, wenn Sie Änderungen vornehmen zu Ihrem Pom wie hinzufügen entfernen Abhängigkeiten/Plugins? – Asanke