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 目錄指向另一個路徑。


C:/MyLocalRepository

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

中央儲存庫

Maven中央存儲庫是由Maven社區提供的資源庫。它包含了大量的常用程序庫。

當Maven沒有在本地存儲庫找到任何依賴,就會開始搜索在中央存儲庫,它會使用下列網址: http://repo1.maven.org/maven2/

中央倉庫的關鍵概念:

  • 此係統信息庫由Maven社區管理

  • 它不要求配置

  • 搜索時需要互聯網接入

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

遠程倉庫

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

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


4.0.0
com.companyname.projectgroup
project
1.0


com.companyname.common-lib
common-lib
1.0.0




companyname.lib1
http://download.companyname.org/maven2/lib1


companyname.lib2
http://download.companyname.org/maven2/lib2


Maven 依賴搜索序列

當我們執行 Maven 構建命令,Maven 依賴庫按以下順序進行搜索:

  • 第1步 - 搜索依賴本地資源庫,如果沒有找到,跳到第2步,否則,如果找到那麼會做進一步處理。

  • 第2步 - 搜索依賴中央存儲庫,如果沒有找到,則從遠程資源庫/存儲庫中,然後移動到步驟4,否則如果找到,那麼它下載到本地存儲庫中,以備將來參考使用。

  • 第3步 - 如果沒有提到遠程倉庫,Maven 則會停止處理並拋出錯誤(找不到依賴庫)。

  • 第4步 - 遠程倉庫或儲存庫中的搜索依賴,如果找到它會下載到本地資源庫以供將來參考使用,否則 Maven 停止處理並拋出錯誤(找不到依賴庫)。