1. 程式人生 > >Maven入門指南:倉庫

Maven入門指南:倉庫

轉載https://blog.csdn.net/a258831020/article/details/49965803

1 . 倉庫簡介

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

maven是一種全新的專案構建方式,讓我們的開發更加簡單,高效。

Maven主要功能:

1.  依賴jar包,工程之間的依賴

2.  專案構建,實現專案的一步構建

3. 

工程聚合、繼承、依賴

Maven還可以管理專案的整個宣告週期,包括編 譯,構建,測試,釋出,報告等等。目前Apache下絕大多數專案都已經採用Maven進行管理。而Maven本身還支援多種外掛,可以方便更靈活的控制專案。

準備工作

Java開發環境(JDK)

maven下載地址: http://maven.apache.org/release-notes-all.html

安裝

安裝maven超級簡單,總共分四步:

下載 Maven ,其實就是一個壓縮包,解壓一下

 apache-maven-3.5.2-bin.zip是壓縮包,解壓到安裝路徑即可。

apache-maven-3.5.2-src.zip

是maven原始碼。

 

為了您的方便,Maven以多種格式分發。只需選擇一個現成的二進位制發行歸檔檔案並按照 安裝說明進行操作。 如果您打算自己構建Maven,請使用原始碼歸檔。

參考文件http://maven.apache.org/ref/3.5.3/images/maven-deps.png  

 

2.配置環境變數:

M2_HOME = D:\maven\apache-maven-3.5.4

    在path變數末尾加入“%M2_HOME%\bin;`”。

    3.最後,驗證是否安裝成功

現在我們開啟 cmd,輸入:mvn –v

    我想您一定會看到一些資訊, 恭喜您,Maven 安裝成功!

在使用 Maven 之前,我們必須要了解一下 Maven 到底是怎樣管理 jar 包的,這就是 Maven 倉庫要乾的活了。

2 . 倉庫的佈局

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

https://images0.cnblogs.com/i/293735/201406/130240024366894.png

檔案路徑對應了:groupId/artifactId/version/artifactId-version.packaging

3 . 倉庫的分類

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

https://images0.cnblogs.com/i/293735/201406/130307021083775.png

3 . 1 . 本地倉庫

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

https://images0.cnblogs.com/i/293735/201406/130325391247688.png

  通過修改 %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:

https://images0.cnblogs.com/i/293735/201406/130407543745688.png

1

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>

     <!--阿里雲映象倉庫 -->

    <mirror>

        <id>nexus-aliyun</id>

        <mirrorOf>*</mirrorOf>

        <name>Nexus aliyun</name>

     <url>http://maven.aliyun.com/nexus/content/groups/public</url>

    </mirror>

10     </mirrors>

11     ...

12 </settings>

其中,<mirrorOf> 指明瞭為哪個倉庫配置映象,可以使用萬用字元如:<mirrorOf>*</mirrorOf>,或者 <mirrorOf>repo1,repo2</mirrorOf> 等進行匹配。一旦配置了映象,所有針對原倉庫的訪問將轉到映象倉庫的訪問,原倉庫將不再能直接訪問,即使映象倉庫不穩定或停用。在搭建私服的時候,我們通常為所有倉庫設定映象為私服地址,通過私服對所有倉庫進行統一管理。

3 . 5 . 常用的倉庫搜尋地址

http://search.maven.org/
https://images0.cnblogs.com/i/293735/201406/130437570451062.png

https://repository.sonatype.org/
https://images0.cnblogs.com/i/293735/201406/130439280145638.png

http://mvnrepository.com/
https://images0.cnblogs.com/i/293735/201406/130440344994959.png