- Maven是一個項目管理工具,基于項目對象模型(POM),它主張遵循
"約定優于配置"
這個思想 - 本地倉庫(localRepository)
Maven默認的本地的倉庫目錄是~/.m2/repository/
,可以更改本地倉庫的位置,只要修改settings.xml文件中的localRepository屬性就可以 - 配置文件
Maven的安裝目錄下,conf/ 目錄包含了一個全局的 settings.xml文件,該文件包含了用戶相關的認證,倉庫和其它信息的配置,用來自定義 Maven 的行為。 - Pom文件
最基礎文件,該文件中定義了項目的坐標,以及項目所需依賴關系和插件行為。一個Maven坐標可以用來唯一標識一個項目,一個依賴,或者Maven POM 里的一個插件,坐標由groupId, artifactId, version 和 packaging組成 -
Maven主要做的是兩件事:
- 統一開發規范與工具
- 統一管理jar包
Maven還可以管理項目的整個聲明周期,包括編 譯,構建,測試,發布,報告等等
-
環境
- Java開發環境(JDK)
- maven下載地址:http://maven.apache.org/release-notes-all.html
xxx-src.zip 表示源代碼
-
安裝
下載 Maven 其實就是一個壓縮包,解壓一下
配置一下環境變量
MAVEN_HOME = D:\maven\apache-maven-3.2.3
MAVEN_OPTS = -Xms128m -Xmx512m
(可選)-
在path變量末尾加入
;%MAVEN_HOME%\bin;
(前面注意分號)
以上M2_HOME 是必須要配置的,如果想讓 Maven 跑得更快點,可以根據自己的情況來設置 MAVEN_OPTS。
Maven配置路徑.png -
驗證是否安裝成功,打開 cmd,輸入:
echo %MAVEN_HOME%
或者mvn -v
或mvn -version
Maven安裝成功.png
- Maven倉庫
使用 Maven 給我們帶來的最直接的好處,就是統一管理jar 包,這些 jar 包存放在您的 本地倉庫 中,默認地址位于 C:\Users\用戶名.m2
目錄下。
開發項目時項目首先會從本地倉庫中獲取 jar 包,當無法獲取指定 jar 包的時候,本地倉庫會從 遠程倉庫(或 中央倉庫) 中下載 jar 包,并“緩存”到本地倉庫中以備將來使用。
遠程倉庫(中央倉庫)是 Maven 官方提供的,可通過 http://search.maven.org/來訪問。這樣一來,本地倉庫會隨著項目的積累越來越大。通過下面這張圖可以清晰地表達項目、本地倉庫、遠程倉庫之間的關系。
-
修改 maven 本地倉庫位置:
找到maven 下的conf
下的settings.xml
配置文件
然后把本地相應的路徑值寫到里面去就行了:
本地倉庫路徑.gif
<!--Maven就會將下載的類庫保存到D:\maven\repository中。-->
<localRepository>D:\maven\repository</localRepository>
驗證配置是否成功,控制臺輸入:mvn help:system
該命令會打印出所有的java系統屬性和環境變量。這些信息對我們日常的編程工作很有幫
如果沒有任何問題,執行完該命令之后,在D:\maven\repository下面就會多出很多文件,這些文件就是maven從中央倉庫下載到本地倉庫的文件,maven已經開始為我們工作了。
- 修改Maven倉庫地址
maven倉庫用過的人都知道,國內有多么的悲催。還好有比較好用的鏡像可以使用。
在maven的settings.xml 文件里配置mirrors的子節點,添加如下mirror
<mirrors>
<!-- 把鏡像地址改成阿里云maven私服 -->
<!--默認是從maven官方倉庫下載的,添加下面這段代碼可以改為阿里云私服,速度能快一點-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
配置完畢!
- 參考
<!--MAVEN國內代理-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>maven.net.cn</id>
<name>oneof the central mirrors in china</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>