1. 程式人生 > >Maven 入門 03 - 安裝配置 和 Maven 倉庫

Maven 入門 03 - 安裝配置 和 Maven 倉庫

文章目錄

一、安裝及配置

1、下載

物件 要求
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>節點,在其中定義遠端倉庫的idurl

  • 然後在 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 將簡單的停滯處理並丟擲錯誤(無法找到依賴的檔案)。