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

Maven倉庫的具體使用(本地倉庫+遠(yuǎn)程倉庫)

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

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

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

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

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

倉庫的分類

Maven 倉庫可以分為 2 個大類:

  • 本地倉庫
  • 遠(yuǎn)程倉庫

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

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

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

本地倉庫

Maven 本地倉庫實際上就是本地計算機上的一個目錄(文件夾),它會在第一次執(zhí)行 Maven 命令時被創(chuàng)建。

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

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

<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)件只有儲存在本地倉庫中,才能被其他的 Maven 項目使用。構(gòu)件想要進入本地倉庫,除了從遠(yuǎn)程倉庫下載到本地倉庫外,還可以使用命令 mvn install 將本地項目的輸出構(gòu)件安裝到本地倉庫中。

中央倉庫

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

中央倉庫具有如下特點:

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

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

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

遠(yuǎn)程倉庫

如果 Maven 在本地倉庫和中央倉庫中都找不到依賴的庫文件,它就會停止構(gòu)建過程并輸出錯誤信息到控制臺。為避免這種情況的發(fā)生,Maven 還提供了遠(yuǎn)程倉庫的概念,它是一種由開發(fā)人員自己定制的倉庫,其中包含了供其他項目使用的代碼庫或者構(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)通過 Maven 構(gòu)建項目時,Maven 按照如下順序查找依賴的構(gòu)件。

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Java集合ConcurrentHashMap詳解

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

最新評論

博罗县| 合肥市| 安阳县| 南康市| 武邑县| 南京市| 长垣县| 手游| 特克斯县| 兴安县| 泰来县| 民勤县| 衡阳县| 宣武区| 漠河县| 洪湖市| 罗平县| 仙桃市| 南投市| 张家港市| 龙游县| 泸西县| 惠水县| 康平县| 原阳县| 邳州市| 龙海市| 辉县市| 望谟县| 贵阳市| 三穗县| 铜陵市| 庆阳市| 宁国市| 东阳市| 江安县| 焦作市| 合阳县| 隆尧县| 凤冈县| 海城市|