Maven中的庫repository詳解
一、簡介
所謂的倉庫就是用于存放項(xiàng)目需要的jar包的。在我們的maven項(xiàng)目中其實(shí)并沒有項(xiàng)目所需要的jar包,只在pom.xml文件中記錄了jar的坐標(biāo)。maven依賴管理通過jar的坐標(biāo)去倉庫中下載jar文件。
如果一個(gè)項(xiàng)目需要依賴一個(gè)構(gòu)件,Maven編譯的時(shí)候會(huì)首先從本地庫查找該構(gòu)件。如果本地庫中沒有,再根據(jù)配置的遠(yuǎn)程庫信息,逐個(gè)去遠(yuǎn)程庫中查找該構(gòu)件。
如果在遠(yuǎn)程庫中找到則下載到本地庫,如果在所有的遠(yuǎn)程庫中都沒有則會(huì)拋出編譯異常。
Maven中要配置庫,可以有多種方式。最直接的是在項(xiàng)目中的pom.xml文件中,通過<repositories>配置庫,這樣配置的庫僅適用于當(dāng)前項(xiàng)目。也可以通過<profiles>中的<repositories>配置在特定環(huán)境下的特殊庫,這可以在項(xiàng)目的pom.xml文件中實(shí)現(xiàn),也可以在Maven的settings.xml中實(shí)現(xiàn)。
二、配置repository
在pom.xml或settings.xml中設(shè)置<repositories>,往往需要提供一個(gè)<repository>的如下信息:
id,庫的ID
name,庫的名稱
url,庫的URL
layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy
releases,庫中版本為releases的構(gòu)件
snapshots,庫中版本為snapshots的構(gòu)件
根據(jù)構(gòu)件的版本,可以將構(gòu)件分為releases類型的構(gòu)件和snapshots類型的構(gòu)件。
對(duì)于一個(gè)構(gòu)件,其版本的變化是否會(huì)引起庫中更新該構(gòu)件呢?則需要根據(jù)庫的<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>三、分類
maven倉庫分為兩類:

2.1 本地倉庫
默認(rèn)maven會(huì)在c盤創(chuàng)建一個(gè).m2的本地倉庫。默認(rèn)位置:用戶目錄/.m2/repository/,可以修改setting.xml文件來修改本地倉庫地址
<localRepository>D:\software\mvn\m2\repository</localRepository>
2.2 遠(yuǎn)程倉庫
中央倉庫:默認(rèn)的遠(yuǎn)程倉庫。
私有倉庫:局域網(wǎng)內(nèi)的倉庫??梢岳斫鉃樽约汗镜膫}庫,也叫Nexus私服。
鏡像倉庫:其他公開的資源倉庫 例如國內(nèi)的阿里云,jboss,jcenter 倉庫等
到此這篇關(guān)于Maven中的庫(repository)的文章就介紹到這了,更多相關(guān)Maven repository內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)操作JSON的便捷工具類完整實(shí)例【重寫Google的Gson】
這篇文章主要介紹了Java實(shí)現(xiàn)操作JSON的便捷工具類,基于重寫Google的Gson實(shí)現(xiàn),涉及java針對(duì)json數(shù)據(jù)的各種常見轉(zhuǎn)換操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10
使用jsoup解析html的table中的文本信息實(shí)例
今天小編就為大家分享一篇使用jsoup解析html的table中的文本信息實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
一文了解Java讀寫鎖ReentrantReadWriteLock的使用
ReentrantReadWriteLock稱為讀寫鎖,它提供一個(gè)讀鎖,支持多個(gè)線程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應(yīng)用場景,感興趣的可以了解一下2022-10-10
idea統(tǒng)計(jì)代碼行數(shù)Statistic的步驟詳解
這篇文章主要介紹了idea統(tǒng)計(jì)代碼行數(shù)Statistic的步驟詳解,本文通過使用Statistic插件操作的,通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
JAVA如何自動(dòng)下載SSL證書并導(dǎo)入到本地
這篇文章主要介紹了JAVA如何自動(dòng)下載SSL證書并導(dǎo)入到本地問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07

