一. Maven簡介
1. 什么是Maven
Maven 的正確發音是[ˈmevən],而不是“馬瘟”以及其他什么瘟。Maven 在美國是一個口語化的詞語,代表專家、內行的意思。
一個對 Maven 比較正式的定義是這么說的:Maven 是一個項目管理工具,它包含了一個 項目對象模型 (POM:Project Object Model),一組標准集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。
2. Maven的作用
(1). 依賴管理
maven 工程中不直接將 jar 包導入到工程中,而是通過在 pom.xml 文件中添加所需 jar包的坐標,這樣就很好的避免了 jar 直接引入進來,在需要用到 jar 包的時候,只要查找 pom.xml 文件,再通過 pom.xml 文件中的坐標,到一個專門用於”存放 jar 包的倉庫”(maven 倉庫)中根據坐標從而找到這些 jar 包,再把這些 jar 包拿去運行。 (類似於.Net中的Nuget)
(2). 項目的一鍵構建
項目從編譯、測試、運行、打包、安裝 ,部署整個過程都交給 maven 進行管理,這個過程稱為構建。maven一鍵構建指的是整個構建過程,使用 maven 一個命令可以輕松完成整個工作。
二. 安裝配置
1. 下載安裝
下載地址:https://maven.apache.org/download.cgi,這里我們下載windows版本,如下圖:
直接解壓到某個目錄下,注意不要有中文路徑,如下圖:
bin:存放了 maven 的命令,比如我們前面用到的mvn tomcat:run
boot:存放了一些 maven 本身的引導程序,如類加載器等
conf:存放了 maven 的一些配置文件,如 setting.xml 文件
lib:存放了 maven 本身運行所需的一些 jar 包
2. 配置
(1). 首先要安裝配置jdk. (詳見:https://www.cnblogs.com/yaopengfei/p/14866922.html)
(2). 配置Maven環境變量 (MAVEN_HOME → Path中添加 %MAVEN_HOME%\bin)
(3). 在命令行中輸入 【mvn -v】,如下圖,說明配置成功。
三. 倉庫分類與配置
1. 倉庫的分類
maven 的工作需要從倉庫下載一些 jar 包,本地的項目 A、項目 B 等都會通過 maven軟件從遠程倉庫(可以理解為互聯網上的倉庫)下載 jar 包並存在本地倉庫,本地倉庫 就是本地文件夾,當第二次需要此 jar 包時則不再從遠程倉庫下載,因為本地倉庫已經存在了,可以將本地倉庫理解為緩存,有了本地倉庫就不用每次從遠程倉庫下載了。
(1). 本地倉庫
用來存儲從遠程倉庫或中央倉庫下載的插件和 jar 包,項目使用一些插件或 jar 包,優先從本地倉庫查找。默認本地倉庫位置在 ${user.dir}/.m2/repository,${user.dir}表示windows 用戶目錄。
(2). 遠程倉庫(私服)
如果本地需要插件或者 jar 包,本地倉庫沒有,默認去遠程倉庫下載。遠程倉庫可以在互聯網內也可以在局域網內。【通常公司在局域網內搭建自己的遠程倉庫】
(3). 中央倉庫
在 maven 軟件中內置一個遠程倉庫,它是中央倉庫,服務於整個互聯網,它是由 Maven 團隊自己維護,里面存儲了非常全的 jar 包,它包含了世界上大部分流行的開源項目構件。
(默認遠程倉庫:http://repo1.maven.org/maven2,默認配置如下:)
<mirror> <id>maven-default-http-blocker</id> <mirrorOf>external:http:*</mirrorOf> <name>Pseudo repository to mirror external repositories initially using HTTP.</name> <url>http://0.0.0.0/</url> <blocked>true</blocked> </mirror>
推薦阿里雲:https://maven.aliyun.com/mvn/search,上這個地址去找各種倉庫和jar包
修改為阿里雲倉庫:
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里雲公共倉庫</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
2. 本地倉庫配置
在conf/settings.xml 文件中配置本地倉庫位置 <localRepository>D:/JavaDevelop/maven_repository</localRepository>
3. 全局配置和用戶配置
maven 倉庫地址、私服等配置信息需要在 setting.xml 文件中配置,分為全局配置和用戶配置。
在 maven 安裝目錄下的有 conf/setting.xml 文件,此 setting.xml 文件用於 maven 的所有 project項目,它作為 maven 的全局配置。如需要個性配置則需要在用戶配置中設置,用戶配置的 setting.xml 文件默認的位置在:${user.dir}/.m2/settings.xml 目錄中,${user.dir} 指windows 中的用戶目錄。
maven會先找用戶配置,如果找到則以用戶配置文件為准,否則使用全局配置文件。
四. Maven工程介紹
1. 標准Maven工程結構
(1). 作為一個 maven 工程,它的 src目錄和 pom.xml 是必備的
(2). 進入 src目錄后,我們發現它里面的目錄結構如下
src/main/java —— 存放項目的.java 文件
src/main/resources —— 存放項目資源文件,如 spring, hibernate 配置文件
src/test/java —— 存放所有單元測試.java 文件,如 JUnit 測試類
src/test/resources —— 測試資源文件
注意:如果是普通的 java 項目,那么就沒有webapp 目錄。
2. Maven工程運行
在根目錄下運行【mvn tomcat:run】,自動下載相應jar包,進行啟動,如下圖:
!
- 作 者 : Yaopengfei(姚鵬飛)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 聲 明1 : 如有錯誤,歡迎討論,請勿謾罵^_^。
- 聲 明2 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。