Maven仓库配置中央仓库
目錄
1.什么是maven倉(cāng)庫(kù)
2.倉(cāng)庫(kù)分為兩類(lèi):本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)。
2.1 遠(yuǎn)程倉(cāng)庫(kù)
2.2 本地倉(cāng)庫(kù)
3.倉(cāng)庫(kù)配置
3.1 在 settings.xml 文件中配置本地倉(cāng)庫(kù)
3.2 在 settings.xml 文件中配置鏡像倉(cāng)庫(kù)(遠(yuǎn)程倉(cāng)庫(kù)):
4.倉(cāng)庫(kù)優(yōu)先級(jí)問(wèn)題:
4.1本地倉(cāng)庫(kù)
4.2指定倉(cāng)庫(kù)
4.3遠(yuǎn)程倉(cāng)庫(kù)
4.3.1鏡像倉(cāng)庫(kù)
4.3.2中央倉(cāng)庫(kù)
1.什么是maven倉(cāng)庫(kù)
Maven 倉(cāng)庫(kù)是基于簡(jiǎn)單文件系統(tǒng)存儲(chǔ)的,集中化管理 Java API 資源(構(gòu)件)的一個(gè)服務(wù)。倉(cāng)庫(kù)中的任何一個(gè)構(gòu)件都有其唯一的坐標(biāo),根據(jù)這個(gè)坐標(biāo)可以定義其在倉(cāng)庫(kù)中的唯一存儲(chǔ)路徑。得益于 Maven 的坐標(biāo)機(jī)制,任何 Maven 項(xiàng)目使用任何一個(gè)構(gòu)件的方式都是完全相同的,Maven 可以在某個(gè)位置統(tǒng)一存儲(chǔ)所有的 Maven 項(xiàng)目共享的構(gòu)件,這個(gè)統(tǒng)一的位置就是倉(cāng)庫(kù),項(xiàng)目構(gòu)建完畢后生成的構(gòu)件也可以安裝或者部署到倉(cāng)庫(kù)中,供其它項(xiàng)目使用。
2.倉(cāng)庫(kù)分為兩類(lèi):本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)。
2.1 遠(yuǎn)程倉(cāng)庫(kù)
遠(yuǎn)程倉(cāng)庫(kù)指通過(guò)各種協(xié)議如 file://和 http://訪問(wèn)的其它類(lèi)型的倉(cāng)庫(kù)。這些倉(cāng)庫(kù)可能是第三方搭建的真實(shí)的遠(yuǎn)程倉(cāng)庫(kù),用來(lái)提供他們的構(gòu)件下載(例如 repo.maven.apache.org 和uk.maven.org 是 Maven 的中央倉(cāng)庫(kù))。其它“遠(yuǎn)程”倉(cāng)庫(kù)可能是你的公司擁有的建立在文件或 HTTP 服務(wù)器上的內(nèi)部倉(cāng)庫(kù),用來(lái)在開(kāi)發(fā)團(tuán)隊(duì)間共享私有構(gòu)件和管理發(fā)布的。
2.2 本地倉(cāng)庫(kù)
本地倉(cāng)庫(kù)指本機(jī)的一份拷貝,用來(lái)緩存遠(yuǎn)程下載,包含你尚未發(fā)布的臨時(shí)構(gòu)件。
3.倉(cāng)庫(kù)配置
3.1 在 settings.xml 文件中配置本地倉(cāng)庫(kù)
本地倉(cāng)庫(kù)是開(kāi)發(fā)者本地電腦中的一個(gè)目錄,用于緩存從遠(yuǎn)程倉(cāng)庫(kù)下載的構(gòu)件。默認(rèn)的本地倉(cāng)庫(kù)是${user.home}/.m2/repository。用戶可使用 settings.xml 文件修改本地倉(cāng)庫(kù)。具體內(nèi)容如下:
<?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"><!-- 本地倉(cāng)庫(kù)配置 --><localRepository>/put/your/local/repository/here</localRepository><!-- 省略,具體信息參考后續(xù)內(nèi)容。 --> </settings>之后改為你電腦的絕對(duì)路徑默認(rèn)是注釋的:
3.2 在 settings.xml 文件中配置鏡像倉(cāng)庫(kù)(遠(yuǎn)程倉(cāng)庫(kù)):
也就是解決國(guó)外倉(cāng)庫(kù)下載安裝較慢的問(wèn)題,我們可以更換遠(yuǎn)程倉(cāng)庫(kù)。
如果倉(cāng)庫(kù) A 可以提供倉(cāng)庫(kù) B 存儲(chǔ)的所有內(nèi)容,那么就可以認(rèn)為 A 是 B 的一個(gè)鏡像。例如:在國(guó)內(nèi)直接連接中央倉(cāng)庫(kù)下載依賴(lài),由于一些特殊原因下載速度非常慢。這時(shí),我們可以使用阿里云提供的鏡http://maven.aliyun.com/nexus/content/groups/public/來(lái)替換中央倉(cāng)庫(kù) http://repol.maven.org/maven2/。修改 maven 的 setting.xml 文件,具體內(nèi)容如下:
<mirror> <!-- 指定鏡像 ID --> <id>nexus-aliyun</id> <!-- 匹配中央倉(cāng)庫(kù)。--> <mirrorOf>central</mirrorOf> <!-- 指定鏡像名稱(chēng) --> <name>Nexus aliyun</name> <!-- 指定鏡像路徑 --> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>默認(rèn)顯示:
之后復(fù)制粘貼上面的鏡像配置
4.倉(cāng)庫(kù)優(yōu)先級(jí)問(wèn)題:
本地倉(cāng)庫(kù),鏡像倉(cāng)庫(kù),中央倉(cāng)庫(kù)。
鏡像倉(cāng)庫(kù)=中央倉(cāng)庫(kù)。 鏡像倉(cāng)庫(kù)是用于替代中央倉(cāng)庫(kù)的。
倉(cāng)庫(kù)訪問(wèn)優(yōu)先級(jí):
4.1本地倉(cāng)庫(kù)
第一訪問(wèn)本地倉(cāng)庫(kù)。
4.2指定倉(cāng)庫(kù)
如果本地倉(cāng)庫(kù)不存在對(duì)應(yīng)信息,訪問(wèn)配置文件中指定的遠(yuǎn)程倉(cāng)庫(kù)。
這個(gè)遠(yuǎn)程倉(cāng)庫(kù)是第二優(yōu)先級(jí)。
4.3遠(yuǎn)程倉(cāng)庫(kù)
4.3.1鏡像倉(cāng)庫(kù)
鏡像倉(cāng)庫(kù)是 Maven 開(kāi)發(fā)過(guò)程中的首選遠(yuǎn)程倉(cāng)庫(kù),在本地倉(cāng)庫(kù)和指定倉(cāng)庫(kù)無(wú)法獲取資源
的時(shí)候,直接訪問(wèn)鏡像倉(cāng)庫(kù)。
4.3.2中央倉(cāng)庫(kù)
如果鏡像倉(cāng)庫(kù)不是中央倉(cāng)庫(kù),則會(huì)在訪問(wèn)鏡像倉(cāng)庫(kù)無(wú)法獲取資源后,訪問(wèn)中央倉(cāng)庫(kù)。
修改maven默認(rèn)倉(cāng)庫(kù)
maven從默認(rèn)倉(cāng)庫(kù)下載依賴(lài)速度很慢,這里我篩選了幾個(gè)比較快的倉(cāng)庫(kù)替換默認(rèn)倉(cāng)庫(kù),,因?yàn)橛锌赡軅}(cāng)庫(kù)中的依賴(lài)不全,所以最好多配置幾個(gè)倉(cāng)庫(kù)。
1.第一步
<mirrors><!-- 阿里云鏡像 --><mirror><id>nexus-aliyun</id><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror><!-- maven官方2號(hào)鏡像 --><mirror><id>repo2</id><name>Mirror from Maven Repo2</name><url>http://repo2.maven.org/maven2/</url><mirrorOf>central</mirrorOf></mirror><!-- maven的UK鏡像 --><mirror><id>ui</id><name>Mirror from UK</name><url>http://uk.maven.org/maven2/</url><mirrorOf>central</mirrorOf></mirror><!-- maven的UK鏡像 --><mirror><id>jboss-public-repository-group</id><mirrorOf>central</mirrorOf><name>JBoss Public Repository Group</name><url>http://repository.jboss.org/nexus/content/groups/public</url></mirror> </mirrors>打開(kāi)maven_home/conf/settings.xml文件,找到mirrors標(biāo)簽,如下圖
?
2.第二步
插入倉(cāng)庫(kù)內(nèi)容,最終效果如下圖
<?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"><!-- 本地倉(cāng)庫(kù)配置 --><!-- 省略,具體信息參考后續(xù)內(nèi)容。 --><mirrors><!-- mirror| Specifies a repository mirror site to use instead of a given repository. The repository that| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.|<mirror><id>mirrorId</id><mirrorOf>repositoryId</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://my.repository.com/repo/path</url></mirror>--><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> </mirror> </mirrors></settings>?
總結(jié)
以上是生活随笔為你收集整理的Maven仓库配置中央仓库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Nginx】Nginx服务器之负载均衡
- 下一篇: 一物一码平台如何解决企业窜货问题?