Ketika saya membuat aplikasi Spring Boot saya bisa melihat mvnw
dan mvnw.cmd
file di root proyek. Apa tujuan dari kedua file ini?
Ketika saya membuat aplikasi Spring Boot saya bisa melihat mvnw
dan mvnw.cmd
file di root proyek. Apa tujuan dari kedua file ini?
Jawaban:
File-file ini dari bungkus Maven . Ini bekerja mirip dengan pembungkus Gradle .
Ini memungkinkan Anda untuk menjalankan proyek Maven tanpa menginstal Maven dan hadir di jalan. Ini mengunduh versi Maven yang benar jika tidak ditemukan (sejauh yang saya tahu secara default di direktori home pengguna Anda).
The mvnw
file untuk Linux (bash) dan mvnw.cmd
adalah untuk lingkungan Windows.
Untuk membuat atau memperbarui semua file Maven Wrapper yang diperlukan, jalankan perintah berikut:
mvn -N io.takari:maven:wrapper
Untuk menggunakan versi pakar yang berbeda, Anda dapat menentukan versi sebagai berikut:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Kedua perintah membutuhkan maven on PATH
(tambahkan path ke maven bin
ke Path
pada System Variables) jika Anda sudah memiliki mvnw di proyek Anda, Anda dapat menggunakan ./mvnw
alih-alih mvn
dalam perintah.
Perintah mvnw
menggunakan Maven yang secara default diunduh ~/.m2/wrapper
pada penggunaan pertama.
URL dengan Maven ditentukan di setiap proyek di .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
Untuk memperbarui atau mengubah versi Maven lakukan hal berikut (ingat --non-recursive
untuk proyek multi-modul):
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
atau hanya memodifikasi .mvn/wrapper/maven-wrapper.properties
secara manual.
Untuk menghasilkan pembungkus dari awal menggunakan Maven (Anda harus sudah PATH
menjalankannya:
mvn io.takari:maven:wrapper -Dmaven=3.3.9
The Maven Wrapper adalah pilihan yang sangat baik untuk proyek-proyek yang membutuhkan versi tertentu dari Maven (atau untuk pengguna yang tidak ingin menginstal Maven sama sekali). Alih-alih menginstal banyak versi di sistem operasi, kita bisa menggunakan skrip wrapper khusus proyek.
mvnw: ini adalah skrip Unix shell yang dapat dieksekusi yang digunakan sebagai pengganti Maven yang diinstal penuh
mvnw.cmd : ini untuk lingkungan Windows
Gunakan Kasing
Wrapper harus bekerja dengan sistem operasi yang berbeda seperti:
Setelah itu, kita dapat menjalankan tujuan kita seperti ini untuk sistem Unix:
./mvnw clean install
Dan perintah berikut untuk Batch:
./mvnw.cmd clean install
Jika kami tidak memiliki Maven yang ditentukan di properti wrapper, itu akan diunduh dan diinstal di folder $USER_HOME/.m2/wrapper/dists
sistem.
Plugin Maven Wrapper
Plugin Maven Wrapper untuk melakukan instalasi otomatis dalam proyek Spring Boot sederhana.
Pertama, kita harus masuk ke folder utama proyek dan menjalankan perintah ini:
mvn -N io.takari:maven:wrapper
Kami juga dapat menentukan versi Maven:
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
Opsi -N berarti –non-rekursif sehingga pembungkus hanya akan diterapkan pada proyek utama direktori saat ini, bukan pada submodul mana pun.
Sejauh ini pilihan terbaik saat ini akan menggunakan wadah pakar sebagai alat pembangun. Sebuah mvn.sh
script seperti ini akan cukup:
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvn
perintah untuk operasi pakar meskipun saya bisa menggunakan./mvnw
untuk tujuan yang sama.