Maven 入門 03 - 安裝配置 和 Maven 倉庫
文章目錄
一、安裝及配置
1、下載
- 到官網下載需要的版本:
http://maven.apache.org/download.cgi,直接解壓到本地 - 注意:安裝maven之前,必須先確保你的機器中已經安裝了對應版本的JDK
物件 | 要求 |
---|---|
JDK | Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 |
磁碟 | Maven 自身安裝需要大約 10 MB 空間。除此之外,額外的磁碟空間將用於你的本地 Maven 倉庫。你本地倉庫的大小取決於使用情況,但預期至少 500 MB |
2、配置環境變數
- 新增系統環境變數MAVEN_HOME,並加在Path中
- 在cmd輸入mvn –-version,如果出現maven的版本資訊,說明配置成功
3、Maven配置檔案settings.xml
Maven有兩個配置檔案settings.xml。
這兩個配置檔案裡的設定,對所有的pom檔案都是有效的。
兩個配置檔案路徑分別為:
- Maven安裝目錄中:$M2_HOME/conf/settings.xml
- 使用者主目錄中:${user.home}/.m2/settings.xml
兩個配置檔案都是可選的。如果兩個檔案都存在,則使用者目錄下的配置會覆蓋Maven安裝目錄中的配置。
4、修改本地倉庫的路徑
從中央倉庫下載的jar包,都會統一存放到本地倉庫中。
預設的本地倉庫地址是 ${user.home}/.m2
。通常需要修改成自定義的位置。
開啟maven安裝目錄,開啟conf目錄下的setting.xml檔案,修改其中的 <localRepository>
節點,設定成自己定義的目錄即可。
二、Maven 倉庫
在 Maven 中,倉庫就是一個位置(place),例如目錄,用來儲存所有的工程 jar 檔案、library jar 檔案、外掛或任何其他的工程指定的檔案。
1、Maven 倉庫有三種類型
- 本地(local)
- 中央(central)
- 遠端(remote)
2、本地倉庫
-
Maven 本地倉庫是本地機器上的一個資料夾。它在第一次執行任何 maven 命令的時候建立。
-
當執行一次 Maven 構建後,Maven 將從中央倉庫和遠端倉庫中下載所有依賴的 jar 檔案到本地倉庫路徑中。後面再次構建時直接引用本地的依賴檔案 ,避免了每次構建時都引用存放在遠端機器上的依賴檔案。
2.1 修改本地預設倉庫路徑
- Maven 本地倉庫預設在
${user.home}/.m2/repository
%MAVEN_HOME%\conf\settings.xml
檔案中修改<localRepository>
節點內容
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
- 預設
<localRepository>
節點是被註釋的,需要先去掉註釋,然後把其中的/path/to/local/repo
替換成自己指定的路徑即可。
3、中央倉庫
3.1 中央倉庫概念
- Maven 中央倉庫是由 Maven 社群提供的倉庫,其中包含了大量常用的庫。
- 它由 Maven 社群管理,不需要配置。
- 需要通過網路才能訪問。
3.2 訪問中央倉庫
maven 社群提供了一個 URL:http://search.maven.org/#browse。
通過這個 URL 瀏覽中央倉庫的內容,開發人員可以在中央倉庫中搜索所有可以獲取的程式碼庫。
4、遠端倉庫
4.1 遠端倉庫的概念
如果 Maven 在中央倉庫中也找不到依賴的庫檔案,它會停止構建過程並輸出錯誤資訊到控制檯。
為避免這種情況,Maven 提供了遠端倉庫的概念,它是開發人員自己定製的倉庫,包含了所需要的程式碼庫或者其他工程中用到的 jar 檔案。
4.2 定義遠端倉庫
-
在 pom.xml 中增加
<repository>
節點,在其中定義遠端倉庫的id
和url
。 -
然後在 pom.xml 中增加
<dependency>
節點,在其中宣告所依賴的檔案(在中央倉庫中獲取不到的)。
類似下面這樣:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<dependencies>
<dependency> <!-- 宣告依賴檔案 -->
<groupId>com.companyname.common-lib</groupId>
<artifactId>common-lib</artifactId>
<version>1.0.0</version>
</dependency>
<dependencies>
<repositories>
<repository> <!-- 定義遠端倉庫 -->
<id>companyname.lib1</id>
<url>http://download.companyname.org/maven2/lib1</url>
</repository>
<repository>
<id>companyname.lib2</id>
<url>http://download.companyname.org/maven2/lib2</url>
</repository>
</repositories>
</project>
5、Maven 依賴搜尋順序
當我們執行 Maven 構建命令時,Maven 開始按照以下順序查詢依賴的庫:
本地倉庫local -> 中央倉庫central -> 遠端倉庫remote
詳細查詢順序:
- 1、搜尋本地倉庫,如果找不到,繼續第 2 步,如果找到了則執行其他操作。
- 2、搜尋中央倉庫,如果找到了則下載到本地倉庫中備用; 如果找不到,並且有一個或多個遠端倉庫已經設定,則執行第 3 步;如果遠端倉庫沒有被設定,則執行第 4 步報錯。
- 3、在一個或多個遠端倉庫中搜索依賴的檔案,如果找到則下載到本地倉庫備用,否則執行第 4 步報錯。
- 4、Maven 將簡單的停滯處理並丟擲錯誤(無法找到依賴的檔案)。