最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven倉(cāng)庫(kù)的具體使用(本地倉(cāng)庫(kù)+遠(yuǎn)程倉(cāng)庫(kù))

 更新時(shí)間:2023年11月02日 14:52:47   作者:小日子呀  
Maven 在某個(gè)統(tǒng)一的位置存儲(chǔ)所有項(xiàng)目的構(gòu)件,這個(gè)統(tǒng)一的位置,我們就稱之為倉(cāng)庫(kù),本文主要介紹了Maven倉(cāng)庫(kù)的具體使用(本地倉(cāng)庫(kù)+遠(yuǎn)程倉(cāng)庫(kù)),感興趣的可以了解一下

在 Maven 中,任何一個(gè)依賴、插件或者項(xiàng)目構(gòu)建的輸出,都可以稱為構(gòu)件。

Maven 在某個(gè)統(tǒng)一的位置存儲(chǔ)所有項(xiàng)目的構(gòu)件,這個(gè)統(tǒng)一的位置,我們就稱之為倉(cāng)庫(kù)。換言之,倉(cāng)庫(kù)就是存放依賴和插件的地方。

任何的構(gòu)件都有唯一的坐標(biāo),該坐標(biāo)定義了構(gòu)件在倉(cāng)庫(kù)中的唯一存儲(chǔ)路徑。當(dāng) Maven 項(xiàng)目需要某些構(gòu)件時(shí),只要其 POM 文件中聲明了這些構(gòu)件的坐標(biāo),Maven 就會(huì)根據(jù)這些坐標(biāo)找自動(dòng)到倉(cāng)庫(kù)中找到并使用它們。

項(xiàng)目構(gòu)建完成生成的構(gòu)件,也可以安裝或者部署到倉(cāng)庫(kù)中,供其他項(xiàng)目使用。

倉(cāng)庫(kù)的分類

Maven 倉(cāng)庫(kù)可以分為 2 個(gè)大類:

  • 本地倉(cāng)庫(kù)
  • 遠(yuǎn)程倉(cāng)庫(kù)

當(dāng) Maven 根據(jù)坐標(biāo)尋找構(gòu)件時(shí),它會(huì)首先查看本地倉(cāng)庫(kù),若本地倉(cāng)庫(kù)存在此構(gòu)件,則直接使用;若本地倉(cāng)庫(kù)不存在此構(gòu)件,Maven 就會(huì)去遠(yuǎn)程倉(cāng)庫(kù)查找,若發(fā)現(xiàn)所需的構(gòu)件后,則下載到本地倉(cāng)庫(kù)使用。如果本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)都沒(méi)有所需的構(gòu)件,則 Maven 就會(huì)報(bào)錯(cuò)。

遠(yuǎn)程倉(cāng)庫(kù)還可以分為 3 個(gè)小類:中央倉(cāng)庫(kù)、私服、其他公共倉(cāng)庫(kù)。

  • 中央倉(cāng)庫(kù)是由 Maven 社區(qū)提供的一種特殊的遠(yuǎn)程倉(cāng)庫(kù),它包含了絕大多數(shù)流行的開(kāi)源構(gòu)件。在默認(rèn)情況下,當(dāng)本地倉(cāng)庫(kù)沒(méi)有 Maven 所需的構(gòu)件時(shí),會(huì)首先嘗試從中央倉(cāng)庫(kù)下載。
  • 私服是一種特殊的遠(yuǎn)程倉(cāng)庫(kù),它通常設(shè)立在局域網(wǎng)內(nèi),用來(lái)代理所有外部的遠(yuǎn)程倉(cāng)庫(kù)。它的好處是可以節(jié)省帶寬,比外部的遠(yuǎn)程倉(cāng)庫(kù)更加穩(wěn)定。 
  • 除了中央倉(cāng)庫(kù)和私服外,還有很多其他公共倉(cāng)庫(kù),例如 JBoss Maven 庫(kù),Java.net Maven 庫(kù)等等。Maven 倉(cāng)庫(kù)的分類如下圖:

本地倉(cāng)庫(kù)

Maven 本地倉(cāng)庫(kù)實(shí)際上就是本地計(jì)算機(jī)上的一個(gè)目錄(文件夾),它會(huì)在第一次執(zhí)行 Maven 命令時(shí)被創(chuàng)建。

Maven 本地倉(cāng)庫(kù)可以儲(chǔ)存本地所有項(xiàng)目所需的構(gòu)件。當(dāng) Maven 項(xiàng)目第一次進(jìn)行構(gòu)建時(shí),會(huì)自動(dòng)從遠(yuǎn)程倉(cāng)庫(kù)搜索依賴項(xiàng),并將其下載到本地倉(cāng)庫(kù)中。當(dāng)項(xiàng)目再進(jìn)行構(gòu)建時(shí),會(huì)直接從本地倉(cāng)庫(kù)搜索依賴項(xiàng)并引用,而不會(huì)再次向遠(yuǎn)程倉(cāng)庫(kù)獲取。

Maven 本地倉(cāng)庫(kù)默認(rèn)地址為 C:\%USER_HOME%\.m2\repository ,但出于某些原因(例如 C 盤空間不夠),我們通常會(huì)重新自定義本地倉(cāng)庫(kù)的位置。這時(shí)需要修改 %MAVEN_HOME%\conf 目錄下的 settings.xml 文件,通過(guò) localRepository 元素定義另一個(gè)本地倉(cāng)庫(kù)地址,例如:

<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">
    <localRepository>D:/myRepository/repository</localRepository>
</settings>

構(gòu)件只有儲(chǔ)存在本地倉(cāng)庫(kù)中,才能被其他的 Maven 項(xiàng)目使用。構(gòu)件想要進(jìn)入本地倉(cāng)庫(kù),除了從遠(yuǎn)程倉(cāng)庫(kù)下載到本地倉(cāng)庫(kù)外,還可以使用命令 mvn install 將本地項(xiàng)目的輸出構(gòu)件安裝到本地倉(cāng)庫(kù)中。

中央倉(cāng)庫(kù)

中央倉(cāng)庫(kù)是由 Maven 社區(qū)提供的一種特殊的遠(yuǎn)程倉(cāng)庫(kù),它包含了絕大多數(shù)流行的開(kāi)源構(gòu)件。在默認(rèn)情況下,當(dāng)本地倉(cāng)庫(kù)沒(méi)有 Maven 所需的構(gòu)件時(shí),會(huì)首先嘗試從中央倉(cāng)庫(kù)下載。

中央倉(cāng)庫(kù)具有如下特點(diǎn):

  • 這個(gè)倉(cāng)庫(kù)由 Maven 社區(qū)管理
  • 不需要配置
  • 需要通過(guò)網(wǎng)絡(luò)才能訪問(wèn)

我們可以通過(guò) Maven 社區(qū)提供的地址,瀏覽其中的構(gòu)件。中央倉(cāng)庫(kù)包含了絕大多數(shù)流行的開(kāi)源 Java 構(gòu)件及其源碼、作者信息和許可證信息等。一般來(lái)說(shuō),Maven 項(xiàng)目所依賴的構(gòu)件都可以從中央倉(cāng)庫(kù)下載到。

雖然中央倉(cāng)庫(kù)屬于遠(yuǎn)程倉(cāng)庫(kù)的范疇,但由于它的特殊性,一般會(huì)把它與其他遠(yuǎn)程倉(cāng)庫(kù)區(qū)分開(kāi)。我們常說(shuō)的遠(yuǎn)程倉(cāng)庫(kù),一般不包括中央倉(cāng)庫(kù)。

遠(yuǎn)程倉(cāng)庫(kù)

如果 Maven 在本地倉(cāng)庫(kù)和中央倉(cāng)庫(kù)中都找不到依賴的庫(kù)文件,它就會(huì)停止構(gòu)建過(guò)程并輸出錯(cuò)誤信息到控制臺(tái)。為避免這種情況的發(fā)生,Maven 還提供了遠(yuǎn)程倉(cāng)庫(kù)的概念,它是一種由開(kāi)發(fā)人員自己定制的倉(cāng)庫(kù),其中包含了供其他項(xiàng)目使用的代碼庫(kù)或者構(gòu)件。 如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.biancheng.www</groupId>
    <artifactId>maven</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.bangcheng.common-lib</groupId>
            <artifactId>common-lib</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>biancheng.lib1</id>
            <url>http://download.biancheng.org/maven2/lib1</url>
        </repository>
        <repository>
            <id>biancheng.lib2</id>
            <url>http://download.biancheng.org/maven2/lib2</url>
        </repository>
    </repositories>
</project>

Maven 依賴搜索順序

當(dāng)通過(guò) Maven 構(gòu)建項(xiàng)目時(shí),Maven 按照如下順序查找依賴的構(gòu)件。

  • 從本地倉(cāng)庫(kù)查找構(gòu)件,如果沒(méi)有找到,跳到第 2 步,否則繼續(xù)執(zhí)行其他處理。
  • 從中央倉(cāng)庫(kù)查找構(gòu)件,如果沒(méi)有找到,并且已經(jīng)設(shè)置其他遠(yuǎn)程倉(cāng)庫(kù),然后移動(dòng)到第 4 步;如果找到,那么將構(gòu)件下載到本地倉(cāng)庫(kù)中使用。
  • 如果沒(méi)有設(shè)置其他遠(yuǎn)程倉(cāng)庫(kù),Maven 則會(huì)停止處理并拋出錯(cuò)誤。
  • 在遠(yuǎn)程倉(cāng)庫(kù)查找構(gòu)件,如果找到,則會(huì)下載到本地倉(cāng)庫(kù)并使用,否則 Maven 停止處理并拋出錯(cuò)誤。

 到此這篇關(guān)于Maven倉(cāng)庫(kù)的具體使用(本地倉(cāng)庫(kù)+遠(yuǎn)程倉(cāng)庫(kù))的文章就介紹到這了,更多相關(guān)Maven倉(cāng)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven項(xiàng)目外部jar包導(dǎo)入的實(shí)現(xiàn)示例

    Maven項(xiàng)目外部jar包導(dǎo)入的實(shí)現(xiàn)示例

    在Maven項(xiàng)目里,我們經(jīng)常需要導(dǎo)入jar包依賴,本文主要介紹了Maven項(xiàng)目外部jar包導(dǎo)入的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Spring?boot?處理大文件上傳完整代碼

    Spring?boot?處理大文件上傳完整代碼

    這篇文章主要介紹了Spring?boot?處理大文件上傳,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java Stream中的Spliterator類概念及原理解析

    Java Stream中的Spliterator類概念及原理解析

    Spliterator是Java 8引入的一個(gè)接口,位于java.util包中,它結(jié)合了迭代器(Iterator)的遍歷能力和分割器(Splitter)的分割能力,本文將詳細(xì)介紹Spliterator的概念、原理、作用、類中定義的關(guān)鍵方法,以及它在Stream API中的實(shí)際應(yīng)用,感興趣的朋友一起看看吧
    2024-08-08
  • 基于Maven?pom文件中屬性變量總結(jié)

    基于Maven?pom文件中屬性變量總結(jié)

    這篇文章主要介紹了Maven?pom文件中屬性變量總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring和SpringBoot比較及區(qū)別解惑

    Spring和SpringBoot比較及區(qū)別解惑

    這篇文章主要介紹了Spring和SpringBoot比較解惑區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼

    SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼

    本文主要介紹了SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼,使用Guava中的Strings、Maps和CharMatcher類來(lái)進(jìn)行日志脫敏,保護(hù)敏感數(shù)據(jù)的安全,感興趣的可以了解一下
    2024-01-01
  • java分布式基于RestTemplate的使用方法

    java分布式基于RestTemplate的使用方法

    這篇文章主要為大家介紹了java分布式基于RestTemplate的使用方法說(shuō)明,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • Java中Object和內(nèi)部類舉例詳解

    Java中Object和內(nèi)部類舉例詳解

    這篇文章主要介紹了Java中Object和內(nèi)部類的相關(guān)資料,Object類是Java中所有類的父類,提供了toString、hashCode和equals等方法,內(nèi)部類分為實(shí)例內(nèi)部類、靜態(tài)內(nèi)部類、匿名內(nèi)部類和局部?jī)?nèi)部類,需要的朋友可以參考下
    2025-05-05
  • Java使用JCommander實(shí)現(xiàn)解析命令行參數(shù)

    Java使用JCommander實(shí)現(xiàn)解析命令行參數(shù)

    jcommander?是一個(gè)只有幾十?kb?的?Java?命令行參數(shù)解析工具,可以通過(guò)注解的方式快速實(shí)現(xiàn)命令行參數(shù)解析,本文就來(lái)和大家介紹一下JCommander是如何解析命令行參數(shù)吧
    2023-06-06
  • Java集合ConcurrentHashMap詳解

    Java集合ConcurrentHashMap詳解

    ConcurrentHashMap?是?J.U.C?包里面提供的一個(gè)線程安全并且高效的?HashMap,所以ConcurrentHashMap?在并發(fā)編程的場(chǎng)景中使用的頻率比較高
    2023-01-01

最新評(píng)論

芦山县| 金堂县| 黄平县| 广丰县| 宾阳县| 闵行区| 清水河县| 阳曲县| 阳曲县| 双桥区| 长垣县| 唐山市| 盈江县| 浦江县| 潜江市| 黄骅市| 开江县| 福清市| 寿光市| 延安市| 安远县| 安陆市| 越西县| 西昌市| 紫金县| 珠海市| 仙桃市| 五河县| 全南县| 迁安市| 乌恰县| 富蕴县| 双流县| 尚志市| 和硕县| 宁明县| 土默特左旗| 连城县| 阿瓦提县| 嵩明县| 新余市|