1 . 倉庫簡介spring
沒有 Maven 時,項目用到的 .jar 文件一般須要拷貝到 /lib 目錄,項目多了,拷貝的文件副本就多了,佔用磁盤空間,且難於管理。Maven 使用一個稱之爲倉庫的目錄,根據構件的座標統一存儲這些構件的惟一副本,在項目中經過依賴聲明,能夠方便的引用構件。apache
2 . 倉庫的佈局maven
構件都有惟一的座標,Maven 根據座標管理構件的存儲。如如下對 spring-orm-3.2.0 的存儲:佈局
文件路徑對應了:groupId/artifactId/version/artifactId-version.packagingpost
3 . 倉庫的分類ui
Maven 倉庫分爲本地倉庫和遠程倉庫,尋找構件時,首先從本地倉庫找,找不到則到遠程倉庫找,再找不到就報錯;在遠程倉庫中找到了,就下載到本地倉庫再使用。中央倉庫是 Maven 核心自帶的遠程倉庫,默認地址:http://repo1.maven.org/maven2。除了中央倉庫,還有其它不少公共的遠程倉庫。私服是架設在本機或局域網中的一種特殊的遠程倉庫,經過私服能夠方便的管理其它全部的外部遠程倉庫。url
3 . 1 . 本地倉庫spa
Maven 本地倉庫默認地址爲:${user.home}/.m2/repository。.net
經過修改 %MAVEN_HOME%/conf/settings.xml (或者:${user.home}/.m2/settings.xml,針對當前用戶(推薦))配置文件能夠更改本地倉庫的位置。code
3 . 2 . 中央倉庫
安裝完 Maven ,本地倉庫幾乎是空的,這時須要從遠程倉庫下載所需構件。Maven 配置了一個默認的遠程倉庫,即中央倉庫,找到 %MAVEN_HOME%/lib/maven-model-builder-3.2.1.jar,打開 org/apache/maven/model/pom-4.0.0.xml 超級POM:
3 . 3 . 在項目中添加其餘遠程倉庫
當中央倉庫找不到所需的構件時,咱們能夠配置 pom.xml ,添加其它的遠程倉庫。
1 <repositories> 2 <repository> 3 <id>Sonatype</id> 4 <name>Sonatype Repository</name> 5 <url>http://repository.sonatype.org/content/groups/public/</url> 6 <layout>default</layout> 7 <releases> 8 <enabled>true</enabled> 9 </releases> 10 <snapshots> 11 <enabled>false</enabled> 12 </snapshots> 13 </repository> 14 </repositories>
其中 id 必須惟一,若不惟一,如設置爲 central 將覆蓋中央倉庫的配置。
3 . 4 . 鏡像倉庫
鏡像倉庫能夠理解爲倉庫的副本,從倉庫中能夠找到的構件,從鏡像倉庫中也能夠找到。好比針對中央倉庫 http://repo1.maven.org/maven2 ,在中國有它的鏡像倉庫,這樣咱們直接訪問鏡像倉庫,更快更穩定。
1 <settings> 2 ... 3 <mirrors> 4 <mirror> 5 <id>maven.net.cn</id> 6 <name>central mirror in china</name> 7 <url>http://maven.net.cn/content/groups/public</url> 8 <mirrorOf>central</mirrorOf> <!--代表爲central中央倉庫配置鏡像倉庫--> 9 </mirror> 10 </mirrors> 11 ... 12 </settings>
其中,<mirrorOf> 指明瞭爲哪一個倉庫配置鏡像,能夠使用通配符如:<mirrorOf>*</mirrorOf>,或者 <mirrorOf>repo1,repo2</mirrorOf> 等進行匹配。一旦配置了鏡像,全部針對原倉庫的訪問將轉到鏡像倉庫的訪問,原倉庫將再也不能直接訪問,即便鏡像倉庫不穩定或停用。在搭建私服的時候,咱們一般爲全部倉庫設置鏡像爲私服地址,經過私服對全部倉庫進行統一管理。
3 . 5 . 經常使用的倉庫搜索地址