Maven中的庫(kù)repository詳解
一、簡(jiǎn)介
所謂的倉(cāng)庫(kù)就是用于存放項(xiàng)目需要的jar包的。在我們的maven項(xiàng)目中其實(shí)并沒(méi)有項(xiàng)目所需要的jar包,只在pom.xml文件中記錄了jar的坐標(biāo)。maven依賴(lài)管理通過(guò)jar的坐標(biāo)去倉(cāng)庫(kù)中下載jar文件。
如果一個(gè)項(xiàng)目需要依賴(lài)一個(gè)構(gòu)件,Maven編譯的時(shí)候會(huì)首先從本地庫(kù)查找該構(gòu)件。如果本地庫(kù)中沒(méi)有,再根據(jù)配置的遠(yuǎn)程庫(kù)信息,逐個(gè)去遠(yuǎn)程庫(kù)中查找該構(gòu)件。
如果在遠(yuǎn)程庫(kù)中找到則下載到本地庫(kù),如果在所有的遠(yuǎn)程庫(kù)中都沒(méi)有則會(huì)拋出編譯異常。
Maven中要配置庫(kù),可以有多種方式。最直接的是在項(xiàng)目中的pom.xml文件中,通過(guò)<repositories>配置庫(kù),這樣配置的庫(kù)僅適用于當(dāng)前項(xiàng)目。也可以通過(guò)<profiles>中的<repositories>配置在特定環(huán)境下的特殊庫(kù),這可以在項(xiàng)目的pom.xml文件中實(shí)現(xiàn),也可以在Maven的settings.xml中實(shí)現(xiàn)。
二、配置repository
在pom.xml或settings.xml中設(shè)置<repositories>,往往需要提供一個(gè)<repository>的如下信息:
id,庫(kù)的ID
name,庫(kù)的名稱(chēng)
url,庫(kù)的URL
layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy
releases,庫(kù)中版本為releases的構(gòu)件
snapshots,庫(kù)中版本為snapshots的構(gòu)件
根據(jù)構(gòu)件的版本,可以將構(gòu)件分為releases類(lèi)型的構(gòu)件和snapshots類(lèi)型的構(gòu)件。
對(duì)于一個(gè)構(gòu)件,其版本的變化是否會(huì)引起庫(kù)中更新該構(gòu)件呢?則需要根據(jù)庫(kù)的<releases>或<snapshots>設(shè)置。<releases>和<snapshots>的設(shè)置參數(shù)一致,如下所示:
enabled,是否支持更新
updatePolicy,構(gòu)件更新的策略,可選值有daily, always, never, interval:X(其中的X是一個(gè)數(shù)字,表示間隔的時(shí)間,單位min),默認(rèn)為daily
checksumPolicy,校驗(yàn)碼異常的策略,可選值有ignore, fail, warn
1. 在pom.xml中配置<repository>
<repositories> <repository> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> <id>codehausSnapshots</id> <name>Codehaus Snapshots</name> <url>https://repository-master.mulesoft.org/nexus/content/groups/public/</span></url> <layout>default</layout> </repository> </repositories>
2. Settings.xml配置<repository>
<profile> <id>nexus-profile</id> <repositories> <repository> <id>nexus-repo</id> <url>https://nexus3.nx-code.com/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <updatePolicy>always</updatePolicy> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile>
三、分類(lèi)
maven倉(cāng)庫(kù)分為兩類(lèi):
2.1 本地倉(cāng)庫(kù)
默認(rèn)maven會(huì)在c盤(pán)創(chuàng)建一個(gè).m2的本地倉(cāng)庫(kù)。默認(rèn)位置:用戶(hù)目錄/.m2/repository/,可以修改setting.xml文件來(lái)修改本地倉(cāng)庫(kù)地址
<localRepository>D:\software\mvn\m2\repository</localRepository>
2.2 遠(yuǎn)程倉(cāng)庫(kù)
中央倉(cāng)庫(kù):默認(rèn)的遠(yuǎn)程倉(cāng)庫(kù)。
私有倉(cāng)庫(kù):局域網(wǎng)內(nèi)的倉(cāng)庫(kù)??梢岳斫鉃樽约汗镜膫}(cāng)庫(kù),也叫Nexus私服。
鏡像倉(cāng)庫(kù):其他公開(kāi)的資源倉(cāng)庫(kù) 例如國(guó)內(nèi)的阿里云,jboss,jcenter 倉(cāng)庫(kù)等
到此這篇關(guān)于Maven中的庫(kù)(repository)的文章就介紹到這了,更多相關(guān)Maven repository內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)操作JSON的便捷工具類(lèi)完整實(shí)例【重寫(xiě)Google的Gson】
這篇文章主要介紹了Java實(shí)現(xiàn)操作JSON的便捷工具類(lèi),基于重寫(xiě)Google的Gson實(shí)現(xiàn),涉及java針對(duì)json數(shù)據(jù)的各種常見(jiàn)轉(zhuǎn)換操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10使用jsoup解析html的table中的文本信息實(shí)例
今天小編就為大家分享一篇使用jsoup解析html的table中的文本信息實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05springboot controller無(wú)效的處理方案
這篇文章主要介紹了springboot controller無(wú)效的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10一文了解Java讀寫(xiě)鎖ReentrantReadWriteLock的使用
ReentrantReadWriteLock稱(chēng)為讀寫(xiě)鎖,它提供一個(gè)讀鎖,支持多個(gè)線(xiàn)程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應(yīng)用場(chǎng)景,感興趣的可以了解一下2022-10-10如何在IDEA中查看依賴(lài)關(guān)系的方法步驟
這篇文章主要介紹了如何在IDEA中查看依賴(lài)關(guān)系的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09idea統(tǒng)計(jì)代碼行數(shù)Statistic的步驟詳解
這篇文章主要介紹了idea統(tǒng)計(jì)代碼行數(shù)Statistic的步驟詳解,本文通過(guò)使用Statistic插件操作的,通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10JAVA如何自動(dòng)下載SSL證書(shū)并導(dǎo)入到本地
這篇文章主要介紹了JAVA如何自動(dòng)下載SSL證書(shū)并導(dǎo)入到本地問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07