Maven存儲庫

什麼是Maven資源庫?

在 Maven 術語裏存儲庫是一個目錄,即目錄中保存所有專案的 jar 庫,插件或任何其他專案特定檔,並可以容易由 Maven 使用

Maven庫中有三種類型

  • local - 本地庫

  • central - 中央庫

  • remote - 遠程庫

本地庫

Maven 本地存儲庫是一個在本地電腦上的一個檔夾位置。當你第一次運行 maven 命令的時候它就被創建了

Maven 的本地資源庫讓您的專案可依賴這些專案(插件庫 jar 檔,jar檔等)。當運行 Maven 構建,那麼 Maven 會自動下載所有依賴的jar到本地存儲庫中。它有助於避免依賴存儲在遠程機器上的專案建立參考。

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沒有在本地存儲庫找到任何依賴,就會開始搜索在中央存儲庫,它會使用下列網址: http://repo1.maven.org/maven2/

中央倉庫的關鍵概念:

  • 此系統資訊庫由Maven社區管理

  • 它不要求配置

  • 搜索時需要互聯網接入

要流覽中央 Maven 倉庫內容,Maven 社區提供了一個網址:http://search.maven.org/#browse 。使用這個庫,開發人員可以在中央存儲庫中搜索所有可用的庫。

遠程倉庫

有時,Maven不能從依賴中央存儲庫找到上述庫,那麼它停下構建過程並輸出錯誤消息到控制臺。為了防止這種情況,Maven提供遠程倉庫概念,這是開發商的自定義庫包含所需的庫檔或其他專案 jar 檔。

例如,使用以下提到的 pom.xml,Maven 會從遠程倉庫下載依賴項(不在中央存儲庫中提供)。

<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 停止處理並拋出錯誤(找不到依賴庫)。


上一篇: Maven 構建配置檔 下一篇: Maven啟用代理訪問