上一節講maven的生命週期,生命週期install:打包發佈到本地倉庫。deploy:打包發佈到遠程倉庫
那麼倉庫是什麼呢,倉庫跟我們生活中貨物倉庫的意思差不多,maven倉庫是指向一個地址,地址裏面保存了很多jar/war/pom等maven管理的目標文件,
maven重的倉庫有多個:本地倉庫/中央倉庫/遠程倉庫
本地倉庫:local repository,指安裝maven時我們指向的文件目錄:
一般是我們當前用戶下的/.m2/路徑:/Users/david/.m2
有配置文件settings.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>/Users/david/.m2/repository</localRepository>
</settings>
看到我們本地倉庫的地址是.m2/repository/文件夾,我們看目錄下有啥
存放了很多文件夾,文件夾裏面都是maven管理的jar/war/pom等文件
中央倉庫:maven默認的倉庫,包含了大量的開源的jar,不需要手動配置,默認加載
中央倉庫是官方維護的倉庫,一般開發人員只能依賴,不能發佈到該倉庫。
http://search.maven.org/#browse 該目錄可以訪問中央倉庫,查詢依賴
遠程倉庫:公司或者開發者自己定義一個遠程倉庫,存放自己的的依賴文件。
<repositories>
<repository>
<id>****-nexus</id>
<url>http://ip:port/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
repositories節點可以配置多個repository,這些遠程倉庫可以存放公司級和私人的依賴文件
鏡像:mirror
鏡像倉庫地址,可以替換倉庫地址,比如我們的中央倉庫是maven負責管理,倉庫地址在國外,國內訪問速度比較慢,可以用其他較爲全面的倉庫地址替換比如aliyun倉庫
<mirrors>
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
看到mirrorOf 指向的central倉庫,當我們需要訪問central倉庫的時候,會直接去訪問aliyun 倉庫。
依賴查找順序:
1.本地倉庫-2.中央倉庫-3.遠程倉庫
這樣的訪問順序說明,首先查找本地是否已經存在,不存在的話查找中央倉庫是否存在,中央倉庫不存在會查詢遠程倉庫,都不存在的情況下會報錯。