Khi tôi tạo một ứng dụng Spring Boot, tôi có thể thấy mvnwvà mvnw.cmdcác tập tin trong thư mục gốc của dự án. Mục đích của hai tập tin này là gì?
Khi tôi tạo một ứng dụng Spring Boot, tôi có thể thấy mvnwvà mvnw.cmdcác tập tin trong thư mục gốc của dự án. Mục đích của hai tập tin này là gì?
Câu trả lời:
Những tập tin này là từ Maven Wrapper . Nó hoạt động tương tự như trình bao bọc Gradle .
Điều này cho phép bạn chạy dự án Maven mà không cần cài đặt và trình bày Maven trên đường dẫn. Nó tải xuống phiên bản Maven chính xác nếu không tìm thấy (theo như tôi biết theo mặc định trong thư mục nhà người dùng của bạn).
Các mvnwtập tin là dành cho Linux (bash) và mvnw.cmdlà cho môi trường Windows.
Để tạo hoặc cập nhật tất cả các tệp Maven Wrapper cần thiết thực hiện lệnh sau:
mvn -N io.takari:maven:wrapper
Để sử dụng phiên bản maven khác, bạn có thể chỉ định phiên bản như sau:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Cả hai lệnh yêu cầu maven trên PATH(thêm đường dẫn đến maven binđể Pathvào System Variables) nếu bạn đã có mvnw trong dự án của bạn, bạn có thể sử dụng ./mvnwthay vì mvntrong các lệnh.
Lệnh mvnwsử dụng Maven theo mặc định được tải xuống ~/.m2/wrappertrong lần sử dụng đầu tiên.
URL với Maven được chỉ định trong mỗi dự án tại .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
Để cập nhật hoặc thay đổi phiên bản Maven, hãy gọi các mục sau (nhớ về --non-recursivecác dự án đa mô-đun):
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
hoặc chỉ sửa đổi .mvn/wrapper/maven-wrapper.propertiesbằng tay.
Để tạo trình bao bọc từ đầu bằng Maven (bạn cần phải PATHchạy nó:
mvn io.takari:maven:wrapper -Dmaven=3.3.9
Các Maven Wrapper là một sự lựa chọn tuyệt vời cho các dự án mà cần một phiên bản cụ thể của Maven (hoặc cho người dùng không muốn cài đặt Maven ở tất cả). Thay vì cài đặt nhiều phiên bản của nó trong hệ điều hành, chúng ta chỉ có thể sử dụng tập lệnh trình bao bọc dành riêng cho dự án.
mvnw: đó là tập lệnh shell Unix thực thi được sử dụng thay cho Maven được cài đặt đầy đủ
mvnw.cmd : nó dành cho môi trường Windows
Trường hợp sử dụng
Trình bao bọc nên hoạt động với các hệ điều hành khác nhau, chẳng hạn như:
Sau đó, chúng ta có thể chạy các mục tiêu của mình như thế này cho hệ thống Unix:
./mvnw clean install
Và lệnh sau cho Batch:
./mvnw.cmd clean install
Nếu chúng ta không có Maven được chỉ định trong thuộc tính trình bao bọc, nó sẽ được tải xuống và cài đặt trong thư mục $USER_HOME/.m2/wrapper/distscủa hệ thống.
Plugin Maven Wrapper
Plugin Maven Wrapper để cài đặt tự động trong dự án Spring Boot đơn giản.
Đầu tiên, chúng ta cần vào thư mục chính của dự án và chạy lệnh này:
mvn -N io.takari:maven:wrapper
Chúng tôi cũng có thể chỉ định phiên bản của Maven:
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
Tùy chọn -N có nghĩa là đệ quy-đệ quy để trình bao bọc sẽ chỉ được áp dụng cho dự án chính của thư mục hiện tại, không phải trong bất kỳ mô hình con nào.
Cho đến nay, tùy chọn tốt nhất hiện nay sẽ là sử dụng thùng chứa maven làm công cụ xây dựng. Một mvn.shkịch bản như thế này là đủ:
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvnlệnh cho hoạt động maven mặc dù tôi có thể sử dụng./mvnwcho cùng một mục đích.