Maven安裝是一個簡單和直接的過程。本章將介紹如何使用Windows 7操作系統安裝和設置Maven。您可以對其他操作系統執行相同的過程。
注意Maven是一個基於Java的應用程序,需要Java開發工具包(JDK)才能正常工作。 Maven版本3.2需要JDK 1.6或更高版本,3.0 / 3.1版本可以使用JDK 1.5或更高版本運行。在繼續安裝Maven之前,請確保已安裝Java。如果沒有,請從http://www.oracle.com/technetwork/java/javase/downloads/index.html安裝JDK(不僅僅是Java運行時環境[JRE])。在本書中,我們將使用JDK 1.7。
您將從Apache Maven網站(http://maven.apache.org/download.html)下載最新版本的Maven開始安裝過程。在撰寫本文時,最新版本是3.2.3。下載Maven 3.2.3 binary .zip文件,如圖2-1所示。
圖2-1。 Maven下載頁面
下載完成後,將發行版解壓縮到計算機上的本地目錄。它將創建一個名爲apache-maven-3.2.3-bin的文件夾。本書假設您已將apache-maven-3.2.3-bin文件夾的內容放在c:\ tools \ maven目錄下,如圖2-2所示。
圖2-2。 Maven安裝位置
安裝過程的下一步是添加指向Maven安裝目錄的M2_HOME環境變量,在我們的例子中爲c:\ tools \ maven。啓動“開始”菜單,然後右鍵單擊“計算機”選項。接下來選擇系統屬性,然後選擇高級系統設置。這將啓動如圖2-3所示的窗口。
圖2-3。系統屬性“窗口
單擊環境變量按鈕,然後單擊系統變量下的新建。輸入如圖2-4所示的值,然後單擊“確定”。
圖2-4。 Maven Home系統變量
此過程的最後一步是修改路徑環境變量,以便可以從命令行運行Maven命令。選擇路徑變量,然後單擊編輯。在路徑值的開始處添加%M2_HOME%/ bin,如圖2-5所示。單擊“確定”。這完成了Maven安裝。如果您有任何打開的命令行窗口,請關閉它們並重新打開一個新的命令行窗口。添加或修改環境變量時,新值不會自動傳播到打開的命令行窗口。
圖2-5。將Maven Home添加到路徑變量
MAVEN_OPTS環境變量
當使用Maven時,尤其是在一個複雜的項目中,你可能會遇到OutOfMemory錯誤。這可能發生,例如,當您運行大量的JUnit測試或當您生成大量報告時。要解決此錯誤,請增加Maven使用的Java虛擬機(JVM)的堆大小。這是通過創建一個名爲MAVEN_OPTS的新環境變量在全局完成的。首先,我們建議使用值-Xmx512m。
測試安裝
現在Maven已經安裝,現在是測試和驗證安裝的時候了。打開命令提示符並運行以下命令:
mvn -v
此命令應輸出類似於以下內容的信息:
C:\ Windows \ System32> mvn -vApache Maven 3.2.3(33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T14:58:10-06:00)Maven主頁:c:\ tools \ mavenJava版本:1.7.0_25,供應商:Oracle CorporationJava home:C:\ Java \ jdk1.7.0_25 \ jreDefault locale:en_US,platform encoding:Cp1252OS name:“windows 7”,version:“6.1”,arch:“x86”
-v命令行選項指示Maven安裝的路徑以及它使用的Java版本。您也可以通過運行擴展命令mvn --version獲得相同的結果。
獲得幫助
您可以使用-h或--help選項獲取Maven的命令行選項列表。運行以下命令將產生類似於圖2-6所示的輸出。
mvn -h
圖2-6。運行Maven幫助命令的結果
其他設置
到目前爲止,我們提供的安裝步驟足以讓您開始使用Maven。但是,對於大多數企業用途,您需要提供其他配置信息。此用戶特定配置在位於c:\ Users \ << user_name >> \。m2文件夾中的settings.xml文件中提供。
注意.m2文件夾對於Maven的平滑操作很重要。在許多方面,這個文件夾包含一個settings.xml文件和一個存儲庫文件夾。存儲庫文件夾包含Maven需要的插件JAR文件和元數據。它還包含Maven從Internet下載的與項目相關的JAR文件。我們將在第3章仔細觀察這個文件夾。
默認情況下,.m2文件夾位於主目錄中。在Windows中,此目錄通常爲c:\ Users \ << your_user_name >>。 Maven自動創建.m2文件夾。如果您在計算機上沒有看到此文件夾,請繼續創建一個。
開箱即用的.m2文件夾不包含settings.xml文件。在本地計算機上的.m2文件夾中,創建一個settings.xml文件,並複製框架settings.xml文件的內容,如清單2-1所示。我們將在以後的章節中介紹這些元素中的一些。表2-1提供了元素的簡要描述。
清單2-1。 Skeleton Settings.xml內容
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
表2-1。 settings.xml的元素的詳細信息
元素名稱 說明
localRepository
Maven在c:\ Users \ << your_user_name >> \。m2 \ repository文件夾中本地存儲插件和依賴關係的副本。此元素可用於更改本地存儲庫的路徑。例如,<localRepository> c:\ mavenrepo </ localRepository>會將存儲庫位置更改爲mavenrepo文件夾。
interactiveMode
顧名思義,當此值設置爲true時,默認值爲Maven與用戶進行交互以進行輸入。
offline離線
當設置爲true時,此配置指示Maven在離線模式下操作。默認值爲false。
servers 服務器
Maven可以與各種服務器交互,例如Apache Subversion(SVN)服務器,構建服務器和遠程存儲庫服務器。此元素允許您指定連接到這些服務器所需的安全憑證,例如用戶名和密碼。
mirrors 鏡子
顧名思義,鏡像允許您爲存儲庫指定備用位置。
proxies 代理
代理包含連接到Internet所需的HTTP代理信息。
profiles 個人資料
配置文件允許您對某些配置元素(例如存儲庫和pluginRepositories)進行分組。
activeProfile
activeProfile允許您指定一個默認配置文件以使Maven可以使用。
設置代理
正如我們將在第3章中詳細討論的,Maven需要一個Internet連接來下載插件和依賴項。一些公司使用HTTP代理來限制對Internet的訪問。在這些情況下,運行Maven將導致無法下載工件錯誤。要解決此問題,請編輯settings.xml文件並添加特定於您公司的代理信息。示例配置如清單2-2所示。
代碼2-2。具有代理內容的Settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<proxies>
<proxy>
<id>
companyProxy</id>
<active>
true</active>
<protocol>
http</protocol>
<host>
proxy.company.com</host>
<port>
8080</port>
<username>
proxyusername</username>
<password>
proxypassword</password>
<nonProxyHosts />
</proxy>
</proxies>
</settings>
IDE支持
在本書中,我們將使用命令行創建和構建示例應用程序。 如果您有興趣使用IDE,好消息是所有現代IDE都帶有完整的Maven集成,無需任何進一步的配置。
概要
本章介紹如何在本地計算機上安裝Maven。 您瞭解到Maven會下載其操作所需的插件和工件。 這些工件存儲在.m2 \ repository文件夾中。 .m2文件夾還包含settings.xml文件,可用於配置Maven的行爲。
在下一章中,我們將更深入地研究Maven的依賴管理。