Maven入門指南④:倉庫


1 . 倉庫簡介

  沒有 Maven 時,項目用到的 .jar 文件通常需要拷貝到 /lib 目錄,項目多了,拷貝的文件副本就多了,占用磁盤空間,且難於管理。Maven 使用一個稱之為倉庫的目錄,根據構件的坐標統一存儲這些構件的唯一副本,在項目中通過依賴聲明,可以方便的引用構件。

2 . 倉庫的布局

  構件都有唯一的坐標,Maven 根據坐標管理構件的存儲。如以下對 spring-orm-3.2.0 的存儲:

文件路徑對應了:groupId/artifactId/version/artifactId-version.packaging

3 . 倉庫的分類

  Maven 倉庫分為本地倉庫和遠程倉庫,尋找構件時,首先從本地倉庫找,找不到則到遠程倉庫找,再找不到就報錯;在遠程倉庫中找到了,就下載到本地倉庫再使用。中央倉庫是 Maven 核心自帶的遠程倉庫,默認地址:http://repo1.maven.org/maven2。除了中央倉庫,還有其它很多公共的遠程倉庫。私服是架設在本機或局域網中的一種特殊的遠程倉庫,通過私服可以方便的管理其它所有的外部遠程倉庫。

3 . 1 . 本地倉庫

  Maven 本地倉庫默認地址為:${user.home}/.m2/repository。

  通過修改 %MAVEN_HOME%/conf/settings.xml (或者:${user.home}/.m2/settings.xml,針對當前用戶(推薦))配置文件可以更改本地倉庫的位置。

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 . 常用的倉庫搜索地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM