Maven中的庫repository詳解
一、簡介
所謂的倉庫就是用于存放項(xiàng)目需要的jar包的。在我們的maven項(xiàng)目中其實(shí)并沒有項(xiàng)目所需要的jar包,只在pom.xml文件中記錄了jar的坐標(biāo)。maven依賴管理通過jar的坐標(biāo)去倉庫中下載jar文件。
如果一個項(xiàng)目需要依賴一個構(gòu)件,Maven編譯的時候會首先從本地庫查找該構(gòu)件。如果本地庫中沒有,再根據(jù)配置的遠(yuǎn)程庫信息,逐個去遠(yuǎn)程庫中查找該構(gòu)件。
如果在遠(yuǎn)程庫中找到則下載到本地庫,如果在所有的遠(yuǎn)程庫中都沒有則會拋出編譯異常。
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>,往往需要提供一個<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)件。
對于一個構(gòu)件,其版本的變化是否會引起庫中更新該構(gòu)件呢?則需要根據(jù)庫的<releases>或<snapshots>設(shè)置。<releases>和<snapshots>的設(shè)置參數(shù)一致,如下所示:
enabled,是否支持更新
updatePolicy,構(gòu)件更新的策略,可選值有daily, always, never, interval:X(其中的X是一個數(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會在c盤創(chuàng)建一個.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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)操作JSON的便捷工具類完整實(shí)例【重寫Google的Gson】
這篇文章主要介紹了Java實(shí)現(xiàn)操作JSON的便捷工具類,基于重寫Google的Gson實(shí)現(xiàn),涉及java針對json數(shù)據(jù)的各種常見轉(zhuǎn)換操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10使用jsoup解析html的table中的文本信息實(shí)例
今天小編就為大家分享一篇使用jsoup解析html的table中的文本信息實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05一文了解Java讀寫鎖ReentrantReadWriteLock的使用
ReentrantReadWriteLock稱為讀寫鎖,它提供一個讀鎖,支持多個線程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應(yīng)用場景,感興趣的可以了解一下2022-10-10idea統(tǒng)計代碼行數(shù)Statistic的步驟詳解
這篇文章主要介紹了idea統(tǒng)計代碼行數(shù)Statistic的步驟詳解,本文通過使用Statistic插件操作的,通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10