- Maven 教程
- Maven - 首頁
- Maven - 概述
- Maven - 環境設定
- Maven - POM
- Maven - 構建生命週期
- Maven - 構建配置檔案
- Maven - 倉庫
- Maven - 外掛
- Maven - 建立專案
- Maven - 構建和測試專案
- Maven - 外部依賴
- Maven - 專案文件
- Maven - 專案模板
- Maven - 快照
- Maven - 構建自動化
- Maven - 管理依賴
- Maven - 部署自動化
- Maven - Web 應用程式
- Maven - Eclipse IDE
- Maven - NetBeans
- Maven - IntelliJ IDEA
- Maven 有用資源
- Maven - 常見問題解答
- Maven - 快速指南
- Maven - 有用資源
- Maven - 討論
Maven - 倉庫
什麼是 Maven 倉庫?
在 Maven 術語中,倉庫是指一個目錄,其中儲存了所有專案 jar、庫 jar、外掛或任何其他專案特定構件,Maven 可以輕鬆地使用這些構件。
Maven 倉庫有三種類型。下圖將說明這三種類型。
- 本地倉庫
- 中央倉庫
- 遠端倉庫
本地倉庫
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 停止處理並丟擲錯誤(無法找到依賴項)。