Maven中的庫repository詳解
一、簡介
所謂的倉庫就是用于存放項目需要的jar包的。在我們的maven項目中其實并沒有項目所需要的jar包,只在pom.xml文件中記錄了jar的坐標。maven依賴管理通過jar的坐標去倉庫中下載jar文件。
如果一個項目需要依賴一個構件,Maven編譯的時候會首先從本地庫查找該構件。如果本地庫中沒有,再根據配置的遠程庫信息,逐個去遠程庫中查找該構件。
如果在遠程庫中找到則下載到本地庫,如果在所有的遠程庫中都沒有則會拋出編譯異常。
Maven中要配置庫,可以有多種方式。最直接的是在項目中的pom.xml文件中,通過<repositories>配置庫,這樣配置的庫僅適用于當前項目。也可以通過<profiles>中的<repositories>配置在特定環(huán)境下的特殊庫,這可以在項目的pom.xml文件中實現,也可以在Maven的settings.xml中實現。
二、配置repository
在pom.xml或settings.xml中設置<repositories>,往往需要提供一個<repository>的如下信息:
id,庫的ID
name,庫的名稱
url,庫的URL
layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy
releases,庫中版本為releases的構件
snapshots,庫中版本為snapshots的構件
根據構件的版本,可以將構件分為releases類型的構件和snapshots類型的構件。
對于一個構件,其版本的變化是否會引起庫中更新該構件呢?則需要根據庫的<releases>或<snapshots>設置。<releases>和<snapshots>的設置參數一致,如下所示:
enabled,是否支持更新
updatePolicy,構件更新的策略,可選值有daily, always, never, interval:X(其中的X是一個數字,表示間隔的時間,單位min),默認為daily
checksumPolicy,校驗碼異常的策略,可選值有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 本地倉庫
默認maven會在c盤創(chuàng)建一個.m2的本地倉庫。默認位置:用戶目錄/.m2/repository/,可以修改setting.xml文件來修改本地倉庫地址
<localRepository>D:\software\mvn\m2\repository</localRepository>
2.2 遠程倉庫
中央倉庫:默認的遠程倉庫。
私有倉庫:局域網內的倉庫??梢岳斫鉃樽约汗镜膫}庫,也叫Nexus私服。
鏡像倉庫:其他公開的資源倉庫 例如國內的阿里云,jboss,jcenter 倉庫等
到此這篇關于Maven中的庫(repository)的文章就介紹到這了,更多相關Maven repository內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java實現操作JSON的便捷工具類完整實例【重寫Google的Gson】
這篇文章主要介紹了Java實現操作JSON的便捷工具類,基于重寫Google的Gson實現,涉及java針對json數據的各種常見轉換操作實現技巧,需要的朋友可以參考下2017-10-10
一文了解Java讀寫鎖ReentrantReadWriteLock的使用
ReentrantReadWriteLock稱為讀寫鎖,它提供一個讀鎖,支持多個線程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應用場景,感興趣的可以了解一下2022-10-10
idea統(tǒng)計代碼行數Statistic的步驟詳解
這篇文章主要介紹了idea統(tǒng)計代碼行數Statistic的步驟詳解,本文通過使用Statistic插件操作的,通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10

