我們使用Maven時,基本上只會用到mvn這一個命令。
mvnw是Maven Wrapper的縮寫。因為我們安裝Maven時,默認情況下,系統所有項目都會使用全局安裝的這個Maven版本。但是,對於某些項目來説,它可能必須使用某個特定的Maven版本,這個時候,就可以使用Maven Wrapper,它可以負責給這個特定的項目安裝指定版本的Maven,而其他項目不受影響。該工具可以在大型、多人協作的項目統一Maven的版本,避免因為不一致造成意想不到的bug
簡單地説,Maven Wrapper就是給一個項目提供一個獨立的,指定版本的Maven給它使用。
安裝Maven Wrapper
安裝Maven Wrapper最簡單的方式是在項目的根目錄(即pom.xml所在的目錄)下運行安裝命令:
mvn -N io.takari:maven:0.7.6:wrapper
它會自動使用最新版本的Maven。注意0.7.6是Maven Wrapper的版本。最新的Maven Wrapper版本可以去官方網站查看。
如果要指定使用的Maven版本,使用下面的安裝命令指定版本,例如3.3.3:
mvn -N io.takari:maven:0.7.6:wrapper -Dmaven=3.3.3
安裝後,查看項目結構:
my-project
├── .mvn
│ └── wrapper
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
│ ├── java
│ └── resources
└── test
├── java
└── resources
發現多了mvnw、mvnw.cmd和.mvn目錄,我們只需要把mvn命令改成mvnw就可以使用跟項目關聯的Maven。例如:
mvnw clean package
在Linux或macOS下運行時需要加上./:
./mvnw clean package
Maven Wrapper的另一個作用是把項目的mvnw、mvnw.cmd和.mvn提交到版本庫中,可以使所有開發人員使用統一的Maven版本。
小結
使用Maven Wrapper,可以為一個項目指定特定的Maven版本。