Maven學習總結(18)——深入理解Maven倉庫
阿新 • • 發佈:2019-01-02
一.本地倉庫(Local Repository)
本地倉庫就是一個本機的目錄,這個目錄被用來儲存我們專案的所有依賴(外掛的jar包還有一些其他的檔案),簡單的說,當你build一個Maven專案的時候,所有的依賴檔案都會放在本地倉庫裡,倉庫供所有專案都可以使用
預設情況下,本地倉庫在.m2目錄,windows下的話就是你的使用者名稱目錄下的.m2目錄
1.更新本地倉庫目錄
找到你的MAVEN_HOME目錄下的conf/setting.xml檔案,更新localRepository節點
<settings><!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
--> <localRepository>D:/maven/repo</localRepository>
2.儲存一下
完成了。新的本地倉庫被放在了D:/maven/repo
看一下這個目錄
二.中央倉庫(central repository)
當我們build一個Maven專案的時候,Maven會檢查我們的pom.xml檔案,來定義專案的依賴,然後Maven會在本地倉庫裡查詢,如果沒有找到,就去maven的中央庫去下載,地址是
看起來是這樣的
注意啊,雖然這個是新的中央倉庫,但有時候還是會從“http://repo1.maven.org/maven/這個舊倉庫下載東西,不過不要緊,理解就行了
三.遠端倉庫(Remote Respository)
在Maven中,當你在pom.xml中生命的依賴既不在本地庫,也不在中央庫的時候,就會報錯。
1.例子
org.jvnet.localizer這個包僅在java.net的倉庫裡有(以前是,現在中央倉庫也有了。但理解就行)
<dependency><groupId>org.jvnet.localizer</groupId><artifactId>localizer</artifactId><version>1.8</version></dependency>
當我們build的時候,會失敗,並輸出未找到錯誤資訊
2.宣告java.net倉庫
為了告訴Maven從遠端倉庫裡獲取依賴,我們需要宣告一個遠端倉庫,在pom.xml裡這樣寫
<repositories><repository><id>java.net</id><url>https://maven.java.net/content/repositories/public/</url></repository></repositories>
這樣,Maven搜尋依賴的順序就是:
1)搜尋本地倉庫,沒有找到,就去第2步,否則退出
2)搜尋中央倉庫,沒有找到,就去第3步,否則退出
3)去java.net遠端倉庫獲取,沒有找到,就報錯,否則退出
補充:JBoss也有個遠端倉庫,可以如下配置:
<project ...><repositories><repository><id>JBoss repository</id><url>http://repository.jboss.org/nexus/content/groups/public/</url></repository></repositories></project>