mvnw是什麼(Maven Wrapper/Maven保持構建工具版本一直的工具)

來源:互聯網
上載者:User

標籤:amp   err   xml檔案   www.   jar   產生   tps   strong   操作   

背景

Maven是一款非常流行的Java項目構建軟體,它集項目的依賴管理、測試案例運行、打包、構件管理於一身,是我們工作的好幫手,maven飛速發展,它的發行版本也越來越多,如果我們的項目是基於Maven構件的,那麼如何保證拿到我們項目源碼的同事的Maven版本和我們開發時的版本一致呢,可能你認為很簡單,一個公司嘛,規定所有的同事都用一個Maven版本不就萬事大吉了嗎?一個組織內部這是可行的,要是你開源了一個項目呢?如何保證你使用的Maven的版本和下載你源碼的人的Maven的版本一致呢,這時候mvnw就大顯身手了。

mvnw全名是Maven Wrapper,它的原理是在maven-wrapper.properties檔案中記錄你要使用的Maven版本,當使用者執行mvnw clean 命令時,發現目前使用者的Maven版本和期望的版本不一致,那麼就下載期望的版本,然後用期望的版本來執行mvn命令,比如剛才的mvn clean。

為項目添加mvnw支援很簡單,有兩種方式:

方法一:在Pom.Xml中添加Plugin聲明:

<plugin>    <groupId>com.rimerosolutions.maven.plugins</groupId>    <artifactId>wrapper-maven-plugin</artifactId>    <version>0.0.4</version></plugin>

這樣當我們執行mvn wrapper:wrapper 時,會幫我們產生mvnw.bat、mvnw、maven/maven-wrapper.jar、maven/maven-wrapper.properties這些檔案。

然後我們就可以使用mvnw代替mvn命令執行所有的maven命令,比如mvnw clean package

方法二:直接執行Goal(推薦使用這種)

mvn -N io.takari:maven:wrapper -Dmaven=3.3.3表示我們期望使用的Maven的版本為3.3.3

產生的內容和第一種方式是一樣的,只是目錄結構不一樣,maven-wrapper.jar和maven-wrapper.properties在".mvn/wrapper"目錄下

使用的注意事項

1、由於我們使用了新的Maven ,如果你的settings.xml沒有放在目前使用者下的.m2目錄下,那麼執行mvnw時不會去讀取你原來的settings.xml檔案

2、在mvnw.bat中有如下的一段指令碼:if exist "%M2_HOME%\bin\mvn.cmd" goto init,意思是如果找到mvn.cmd就執行初始化操作,但是Maven早期版本不叫mvn.cmd,而是叫mvn.bat,所以會報"Error: M2_HOME is set to an invalid directory"錯誤,改成你本地的maven的匹配尾碼就好了。

 

測試工程:https://github.com/easonjim/5_java_example/tree/master/mvnw/testproject

 

參考:

https://github.com/takari/maven-wrapper(官網)

http://www.javacoder.cn/?p=759(以上內容轉自此篇文章)

mvnw是什麼(Maven Wrapper/Maven保持構建工具版本一直的工具)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.