第二章 Maven-Repository儲存庫
阿新 • • 發佈:2021-08-12
一、基本概念
Maven Repository/儲存庫,顧名思義是一個儲存JAR檔案的倉庫,Maven根據專案中pom.xml檔案中提供的jar包依賴資訊,從儲存庫中查詢並獲取需要的jar包。
Maven Repository有3種類型:
# 1.Local Repository – 本地庫
# 2.Central Repository – 中央庫
# 3.Remote Repository – 遠端庫
Maven搜尋依賴項時,會按照:本地庫、中央庫和遠端庫的順序進行。
如果這些庫中沒找到依賴項,Maven將報錯。
二、Local Repository
Maven本地儲存庫是本機中的一個目錄。如果目錄不存在,執行maven時就會先建立它。預設情況下,maven本地儲存庫是%USER_HOME%/.m2目錄。 本地儲存庫目錄設定 可以通過修改settings.xml檔案來更改maven本地儲存庫的位置。 settings.xml檔案位於MAVEN_HOME/conf/settings中,例如:D:\opt\apache-maven-3.6.1-bin\apache-maven-3.6.1\conf\settings.xml。
1.settings.xml中的預設配置
... <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 | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> ... </settings>
2.修改本地儲存庫路徑
... <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>d:/maven-local-repo</localRepository> ... </settings> 這樣,本地儲存庫的路徑就被修改為:d:/maven-local-repo
三、Central Repository
Maven中央庫主要放置公共jar包,是由apache maven社群建立的,中央庫的網址是http://repo1.maven.org/maven2,可以通過網址http://search.maven.org/#browse檢視有哪些公共jar包。
四、Remote Repository
Maven遠端庫也是位於網路上的儲存庫。例如一個公司可能有很多共享的jar包檔案,就可以搭建一個公司內部的遠端庫,供眾多開發人員使用;中央庫可以認為是一個特殊的遠端庫。
可以在pom.xml中配置遠端庫,新增下面內容到pom.xml中就配置了一個遠端庫:
<repositories>
<repository>
<id>test.code</id>
<url>http://maven.fddsse.com/maven2/lib</url>
</repository>
</repositories>
Maven官方網站mvnrepository.com可以查詢jar包及其相關資訊,例如下面是spring core jar包的maven依賴配置資訊,可以通過這些配置獲取spring core jar。
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>