Maven主要做的是兩件事:
-
統一開發規範與工具
-
統一管理jar包
這兩件事情他都做到了,而且還做了更多的事情。Maven還可以管理項目的整個聲明週期,包括編 譯,構建,測試,發佈,報告等等。目前Apache下絕大多數項目都已經採用Maven進行管理。而Maven本身還支持多種插件,可以方便更靈活的控制項目。
工欲善其事,必先利其器。咱們也來玩玩 Maven 這貨吧!先得去下載一個。
準備工作
-
Java開發環境(JDK)
安裝
安裝maven超級簡單,總共分四步:
-
下載 Maven ,其實就是一個壓縮包,解壓一下
-
配置一下環境變量
有兩個環境變量可以配置:
-
MAVEN_HOME = D:\maven\apache-maven-3.2.3
-
MAVEN_OPTS = -Xms128m -Xmx512m(可選)
-
-
在path變量末尾加入“%MAVEN_HOME%\bin;”。
以上M2_HOME 是必須要配置的,如果想讓 Maven 跑得更快點,可以根據自己的情況來設置 MAVEN_OPTS。
-
最後,驗證是否安裝成功
現在我們打開 cmd,輸入:
mvn -v
我想您一定會看到一些信息,如下圖所示:
恭喜您,Maven 安裝成功!
在使用 Maven 之前,我們必須要了解一下 Maven 到底是怎樣管理 jar 包的,這就是 Maven 倉庫要乾的活了。
瞭解Maven倉庫
使用 Maven 給我們帶來的最直接的好處,就是統一管理jar 包,那麼這些 jar 包存放在哪裏呢?它們就在您的 本地倉庫 中,默認地址位於 C:\Users\用戶名.m2 目錄下(當然也可以修改這個默認地址),下面我們就修改一下這個默認地址。
實際上我們可以將本地倉庫理解“緩存”,目的是存放jar包。開發項目時項目首先會從本地倉庫中獲取 jar 包,當無法獲取指定 jar 包的時候,本地倉庫會從 遠程倉庫(或 中央倉庫) 中下載 jar 包,並“緩存”到本地倉庫中以備將來使用。
遠程倉庫(中央倉庫)是 Maven 官方提供的,可通過 http://search.maven.org/ 來訪問。這樣一來,本地倉庫會隨着項目的積累越來越大。通過下面這張圖可以清晰地表達項目、本地倉庫、遠程倉庫之間的關係。
既然 Maven 安裝了,那麼本地倉庫也就有了,默認路徑在我們C盤目錄下,對於專業人士來說C盤很危險,下面我們修改一下默認配置。
配置
Maven會將下載的類庫(jar包)放置到本地的一個目錄下,如果想重新定義這個目錄的位置就需要修改Maven本地倉庫的配置:
修改文件:D:\maven\apache-maven-3.2.3\conf\setting.xml
<code class="language-xml hljs has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">settings</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102);">xmlns</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0);">"http://maven.apache.org/SETTINGS/1.0.0"</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102);">xmlns:xsi</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0);">"http://www.w3.org/2001/XMLSchema-instance"</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102);">xsi:schemaLocation</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0);">"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"</span>></span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"><!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> --></span> <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">localRepository</span>></span>D:\maven\repository<span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">localRepository</span>></span> <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">settings</span>></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li></ul>
依據該配置,Maven就會將下載的類庫保存到D:\maven\repository中。
實驗一下我們剛纔做的事情產生作用沒有,控制檯輸入:
mvn help:system
如圖所示效果:
如果沒有任何問題,執行完該命令之後,在D:\maven\repository下面就會多出很多文件,這些文件就是maven從中央倉庫下載到本地倉庫的文件,maven已經開始爲我們工作了。