欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

倉庫的分類

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

  • 本地倉庫
  • 遠程倉庫

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

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

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

本地倉庫

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

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

Maven 本地倉庫默認地址為 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>

構件只有儲存在本地倉庫中,才能被其他的 Maven 項目使用。構件想要進入本地倉庫,除了從遠程倉庫下載到本地倉庫外,還可以使用命令 mvn install 將本地項目的輸出構件安裝到本地倉庫中。

中央倉庫

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

中央倉庫具有如下特點:

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

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

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

遠程倉庫

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

<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 依賴搜索順序

當通過 Maven 構建項目時,Maven 按照如下順序查找依賴的構件。

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

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

相關文章

  • Mybatis框架之模板方法模式(Template Method Pattern)的實現

    Mybatis框架之模板方法模式(Template Method Pattern)的實現

    MyBatis中使用了模板方法模式來控制SQL語句的執(zhí)行流程,本文主要介紹了Mybatis框架之模板方法模式(Template Method Pattern)的實現,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • Idea創(chuàng)建多模塊maven聚合項目的實現

    Idea創(chuàng)建多模塊maven聚合項目的實現

    這篇文章主要介紹了Idea創(chuàng)建多模塊maven聚合項目的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Spring?Security自定義認證邏輯實例詳解

    Spring?Security自定義認證邏輯實例詳解

    這篇文章主要給大家介紹了關于Spring?Security自定義認證邏輯的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • JAVA中數組插入與刪除指定元素的實例代碼

    JAVA中數組插入與刪除指定元素的實例代碼

    下面小編就為大家分享一篇JAVA中數組插入與刪除指定元素的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • springmvc學習筆記-返回json的日期格式問題的解決方法

    springmvc學習筆記-返回json的日期格式問題的解決方法

    本篇文章主要介紹了springmvc學習筆記-返回json的日期格式問題的解決方法,解決了日期格式的輸出,有興趣的可以了解一下。
    2017-01-01
  • servlet3新特性_動力節(jié)點Java學院整理

    servlet3新特性_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了servlet3新特性的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • java如何實現字符串中的字母排序

    java如何實現字符串中的字母排序

    這篇文章主要介紹了java如何實現字符串中的字母排序問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 淺談java線程join方法使用方法

    淺談java線程join方法使用方法

    這篇文章主要介紹了淺談java線程join方法使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • MyBatis Plus 實現多表分頁查詢功能的示例代碼

    MyBatis Plus 實現多表分頁查詢功能的示例代碼

    這篇文章主要介紹了MyBatis Plus 實現多表分頁查詢功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • spring自定義注解及使用方法詳細例子

    spring自定義注解及使用方法詳細例子

    這篇文章主要給大家介紹了關于spring自定義注解及使用方法的相關資料,Spring 是一個非常強大的框架,可以使用自定義注解來完成許多任務,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01

最新評論