Maven - 倉庫



什麼是 Maven 倉庫?

在 Maven 術語中,倉庫是指一個目錄,其中儲存了所有專案 jar、庫 jar、外掛或任何其他專案特定構件,Maven 可以輕鬆地使用這些構件。

Maven 倉庫有三種類型。下圖將說明這三種類型。

  • 本地倉庫
  • 中央倉庫
  • 遠端倉庫
Repository Structure

本地倉庫

Maven 本地倉庫是您機器上的一個資料夾位置。當您第一次執行任何 Maven 命令時,它就會被建立。

Maven 本地倉庫儲存您專案的所有依賴項(庫 jar、外掛 jar 等)。當您執行 Maven 構建時,Maven 會自動將所有依賴項 jar 下載到本地倉庫。這有助於避免每次構建專案時都引用儲存在遠端機器上的依賴項。

Maven 本地倉庫預設由 Maven 在 %USER_HOME% 目錄中建立。要覆蓋預設位置,請在 Maven settings.xml 檔案(位於 %M2_HOME%\conf 目錄中)中指定另一個路徑。

<settings xmlns = "http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/SETTINGS/1.0.0 
   http://maven.apache.org/xsd/settings-1.0.0.xsd">
   <localRepository>C:/MyLocalRepository</localRepository>
</settings>

當您執行 Maven 命令時,Maven 會將依賴項下載到您的自定義路徑。

中央倉庫

Maven 中央倉庫是 Maven 社群提供的倉庫。它包含大量常用的庫。

當 Maven 在本地倉庫中找不到任何依賴項時,它會使用以下 URL 在中央倉庫中開始搜尋:https://repo1.maven.org/maven2/

中央倉庫的關鍵概念如下:

  • 此倉庫由 Maven 社群管理。
  • 不需要配置。
  • 需要網際網路訪問才能搜尋。

為了瀏覽中央 Maven 倉庫的內容,Maven 社群提供了一個 URL:https://search.maven.org/#browse。使用此庫,開發人員可以在中央倉庫中搜索所有可用的庫。

遠端倉庫

有時,Maven 甚至在中央倉庫中也找不到指定的依賴項。然後它會停止構建過程並在控制檯中輸出錯誤訊息。為了防止這種情況,Maven 提供了遠端倉庫的概念,它是開發人員自己的自定義倉庫,包含所需的庫或其他專案 jar。

例如,使用下面提到的 POM.xml,Maven 將從同一 pom.xml 中提到的遠端倉庫下載(在中央倉庫中不可用)的依賴項。

<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>

Maven 依賴項搜尋順序

當我們執行 Maven 構建命令時,Maven 會按照以下順序開始查詢依賴項庫:

  • 步驟 1 - 在本地倉庫中搜索依賴項,如果未找到,則轉到步驟 2,否則執行進一步處理。

  • 步驟 2 - 在中央倉庫中搜索依賴項,如果未找到並且已提及遠端倉庫/倉庫,則轉到步驟 4。否則,將其下載到本地倉庫以供將來參考。

  • 步驟 3 - 如果未提及遠端倉庫,Maven 只是停止處理並丟擲錯誤(無法找到依賴項)。

  • 步驟 4 - 在遠端倉庫或倉庫中搜索依賴項,如果找到,則將其下載到本地倉庫以供將來參考。否則,Maven 停止處理並丟擲錯誤(無法找到依賴項)。

廣告

© . All rights reserved.