###2.1 安裝Maven### ####2.1.1 檢查JDK安裝#### 在安裝Maven以前,首先要確認你已經正確安裝了JDK。Maven能夠運行在JDK 1.4及以上的版本上。打開Windows的命令行,運行以下的命令來檢查你的Java安裝:
echo %JAVA_HOME%
java -version
結果如圖所示:
上述命令首先檢查環境變量JAVA_HOME是否指向了正確的JDK目錄,接着嘗試運行java命令。若是Windows沒法執行java命令,或者沒法找到JAVA_HOME環境變量。你就須要檢查Java是否安裝了,或者環境變量是否設置正確。 ####2.1.2 下載Maven#### 請訪問Maven的下載頁面:Maven下載頁面,其中包含針對不一樣平臺的各類版本的Maven下載文件。如今最新的版本是apache-maven-3.3.3,若是對Maven的源代碼感興趣並想本身構建Maven,還能夠下載apache-maven-3.3.3-src.zip。該下載頁面還提供了md5校驗和(checksum)文件和asc數字簽名文件,能夠用來檢驗Maven分發包的正確性和安全性。 ####2.1.3 本地安裝Maven#### 將安裝文件解壓到指定的目錄D:\TDDOWNLOAD\apache-maven-3.3.3中,接着須要設置環境變量,將Maven安裝配置到操做系統環境中。
打開系統屬性面板(桌面上右鍵單擊「個人電腦」→「屬性」),點擊高級系統設置,再點擊環境變量,在系統變量中新建一個變量,變量名爲M2_HOME,變量值爲Maven的安裝目錄D:\TDDOWNLOAD\apache-maven-3.3.3。點擊肯定,接着在系統變量中找到一個名爲Path的變量,在變量值的末尾加上%M2_HOME%\bin;,注意多個值之間須要有分號隔開,而後點擊肯定。至此,環境變量設置完成。
這裏須要提一下的是Path環境變量,當咱們在cmd中輸入命令時,Windows首先會在當前目錄中尋找可執行文件或腳本,若是沒有找到,Windows會接着遍歷環境變量Path中定義的路徑。因爲咱們將%M2_HOME%\bin添加到了Path中,而這裏%M2_HOME%其實是引用了咱們前面定義的另外一個變量,其值是Maven的安裝目錄。所以,Windows會在執行命令時搜索目錄D:\TDDOWNLOAD\apache-maven-3.3.3\bin,而mvn執行腳本的位置就是這裏。
明白了環境變量的做用,如今打開一個新的cmd窗口(這裏強調新的窗口是由於新的環境變量配置須要新的cmd窗口才能生效),運行以下命令檢查Maven的安裝狀況:
echo %M2_HOME%
mvn-v
運行結果如圖所示:
第一條命令echo %M2_HOME%用來檢查環境變量M2_HOME是否指向了正確的Maven安裝目錄;而mvn –version執行了第一條Maven命令,以檢查Windows是否可以找到正確的mvn執行腳本。 ####2.1.4 升級Maven#### Maven還比較年輕,更新比較頻繁,所以用戶每每會須要更新Maven安裝以得到更多更酷的新特性,以及避免一些舊的bug。
在Windows上更新Maven很是簡便,只須要下載新的Maven安裝文件,解壓至本地目錄,而後更新M2_HOME環境變量即可。例如,假設Maven推出了新版本3.3.4,咱們將其下載而後解壓至目錄D:\TDDOWNLOAD\apache-maven-3.3.4,接着遵守前一節描述的步驟編輯環境變量M2_HOME,更改其值爲D:\TDDOWNLOAD\apache-maven-3.3.4。至此,更新就完成了。同理,若是你須要使用某一箇舊版本的Maven,也只須要編輯M2_HOME環境變量指向舊版本的安裝目錄。 ###2.2 安裝目錄分析### #### 2.2.1 M2_HOME####
安裝以後的目錄以下:
java
<settings> … <proxies> <proxy> <id>my-proxy</id> <active>true</active> <protocol>http</protocol> <host>218.14.227.197</host> <port>3128</port> <!-- <username>***</username> <password>***</password> <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts> --> </proxy> </proxies> … </settings>
這段配置十分簡單,proxies下能夠有多個proxy元素,若是聲明瞭多個proxy元素,則默認狀況下第一個被激活的proxy會生效。這裏聲明瞭一個id爲my-proxy的代理,active的值爲true表示激活該代理,protocol表示使用的代理協議,這裏是http。固然,最重要的是指定正確的主機名(host元素)和端口(port元素)。上述XML配置中註釋掉了username、password、nonProxyHost幾個元素,當代理服務須要認證時,就須要配置username和password。nonProxyHost元素用來指定哪些主機名不須要代理,可使用 | 符號來分隔多個主機名。此外,該配置也支持通配符,如*.google.com表示全部以google.com結尾的域名訪問都不要經過代理。 ###2.4 配置用戶範圍settings.xml### Maven用戶能夠選擇配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局範圍的,整臺機器上的全部用戶都會直接受到該配置的影響,然後者是用戶範圍的,只有當前用戶纔會受到該配置的影響。
推薦使用用戶範圍的settings.xml,主要緣由是爲了不無心識地影響到系統中的其餘用戶。固然,若是有切實的需求,須要統一系統中全部用戶的settings.xml配置,固然應該使用全局範圍的settings.xml。
除了影響範圍這一因素,配置用戶範圍settings.xml文件還便於Maven升級。直接修改conf目錄下的settings.xml會致使Maven升級不便,每次升級到新版本的Maven,都須要複製settings.xml文件,若是使用~/.m2目錄下的settings.xml,就不會影響到Maven安裝文件,升級時就不須要觸動settings.xml文件。shell