人妻系列无码专区av在线,国内精品久久久久久婷婷,久草视频在线播放,精品国产线拍大陆久久尤物

maven中央倉庫(Maven倉庫如何搭建保姆級教程)

maven中央倉庫(Maven倉庫如何搭建保姆級教程)

莫暄婷 2025-04-11 科技 12 次瀏覽 0個評論

大家好,我是袁庭新。

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

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

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

1.倉庫的分類

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

本地倉庫遠程倉庫

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

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

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

Maven倉庫的分類如下圖。

Maven倉庫如何搭建?保姆級教程

由于私服在實際開發(fā)中十分的常用,也特別重要,因此本節(jié)只稍做介紹,關(guān)于Maven私服的詳細內(nèi)容將在后續(xù)章節(jié)專題介紹。

2.本地倉庫

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

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

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

1.進入apache-maven-3.8.4/conf目錄下,找到settings.xml配置文件,我們在該文件中進行本地倉庫的配置。

2.打開settings.xml文件,進行如下配置。

<!-- 選擇一個磁盤目錄,作為本地倉庫。以下兩種配置Maven本地倉庫的方式,根據(jù)操作系統(tǒng)二選其一。 --><!-- 1.Windows系統(tǒng)配置Maven本地倉庫 --><localRepository>H:\ProgramSoftware\localRepository</localRepository><!-- 2.Mac OS系統(tǒng)配置Maven本地倉庫 --><localRepository>/Users/yuanxin/Documents/ProgramSoftware/localRepository</localRepository>

3.在本臺計算機上,上述配置的Maven本地倉庫地址處創(chuàng)建【localRepository】文件夾,用于存放將來從遠程倉庫或中央倉庫下載的插件和jar包。

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

3.中央倉庫

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

中央倉庫具有如下特點:

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

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

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

4.遠程倉庫

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

國內(nèi)開發(fā)人員由于網(wǎng)絡(luò)原因,直接從中央倉庫下載構(gòu)件時,速度較慢或不穩(wěn)定,我們通常會使用中央倉庫的國內(nèi)鏡像站來解決該問題。

配置Maven鏡像的方法也非常的簡單,我們只需要在Maven安裝目錄中setting.xml文件的mirrors節(jié)點中,使用mirror標簽添加鏡像的相關(guān)信息即可。

目前國內(nèi)使用最多,最穩(wěn)定的中央倉庫鏡像分別是由[阿里云]和[華為云]提供的,它們的地址配置如下。

阿里云鏡像:https://developer.aliyun.com/mvn/guide華為云鏡像:https://mirrors.huaweicloud.com/home4.1 阿里云鏡像

阿里云Maven中央倉庫為阿里云云效提供的公共代理倉庫,幫助研發(fā)人員提高研發(fā)生產(chǎn)效率,使用阿里云Maven中央倉庫作為下載源,速度更快更穩(wěn)定。

1.打開Maven的配置文件( windows機器一般在Maven安裝目錄的conf/settings.xml),在<mirrors></mirrors>標簽中添加mirror子節(jié)點。進入apache-maven-3.8.4/conf目錄下,在settings.xml文件中做如下配置。

<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共倉庫</name> <url>https://maven.aliyun.com/repository/public</url></mirror>

2.如果想使用其它代理倉庫,可在<repositories></repositories>節(jié)點中加入對應(yīng)的倉庫使用地址。以使用central代理倉為例。

<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 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ytx.edu</groupId> <artifactId>hello_maven</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>hello_maven</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <repositories> <repository> <id>central</id> <url>https://maven.aliyun.com/repository/central</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories></project>

說明:上述步驟1和步驟2針對Maven的配置遠程倉庫的配置,兩種方式任選其一即可。

3.在你的pom.xml文件<denpendencies></denpendencies>節(jié)點中加入你要引用的文件信息。

<dependency> <groupId>[GROUP_ID]</groupId> <artifactId>[ARTIFACT_ID]</artifactId> <version>[VERSION]</version></dependency>

4.執(zhí)行拉取命令。

mvn install4.2 華為云鏡像

打開Maven的配置文件( windows機器一般在Maven安裝目錄的conf/settings.xml),在<mirrors></mirrors>標簽中添加mirror子節(jié)點。進入apache-maven-3.8.4/conf目錄下,在settings.xml文件中做如下配置。

<mirror> <id>huaweicloud</id> <name>mirror from maven huaweicloud</name> <mirrorOf>central</mirrorOf> <url>https://repo.huaweicloud.com/repository/maven/</url></mirror>

以上配置中,mirrorOf的取值為central,表示該配置為中央倉庫的鏡像,所有對于中央倉庫的請求都會轉(zhuǎn)到該鏡像。當(dāng)然,我們也可以使用以上方式配置其他倉庫的鏡像。另外三個元素id、name和url分別表示鏡像的唯一標識、名稱和地址。

4.3 鏡像與Maven私服配合使用

鏡像通常會和Maven私服配合使用,由于Maven私服可以代理所有外部的公共倉庫(包括中央倉庫),因此對于組織內(nèi)部的用戶來說,使用一個私服就相當(dāng)于使用了所有需要的外部倉庫,這樣就可以將配置集中到私服中,簡化Maven本身的配置。這種情況下,用戶所有所需的構(gòu)件都可以從私服中獲取,此時私服就是所有倉庫的鏡像。

<srttings> ... <mirrors> <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <name>nexus</name> <url>http://localhost:8000/nexus/content/groups/ytx_repository_group/</url> </mirror> </mirrors> ...</settings>

以上配置中,mirrorOf元素的取值為*,表示匹配所有遠程倉庫,所有對于遠程倉庫的請求都會被攔截,并跳轉(zhuǎn)到url元素指定的地址。

為了滿足一些較為復(fù)雜的需求,Maven還支持一些更為高級的配置。

<mirrorOf>*</mirrorOf>:匹配所有遠程倉庫。<mirrorOf>external:*</mirrorOf>:匹配所有遠程倉庫,使用localhost和file://協(xié)議的除外。即,匹配所有不在本機上的遠程倉庫。<mirrorOf>repo1,repo2</mirrorOf>:匹配倉庫repo1和repo2,使用逗號分隔多個遠程倉庫。<mirrorOf>*,!repo1</miiroOf>:匹配所有遠程倉庫,repo1除外,使用感嘆號將倉庫從匹配中排除。

需要注意的是,由于鏡像倉庫完全屏蔽了被鏡像倉庫,當(dāng)鏡像倉庫不穩(wěn)定或者停止服務(wù)時,Maven也無法訪問被鏡像倉庫,因而將無法下載構(gòu)件。

5.Profiles配置

在settings.xml文件中的<profiles></profiles>標簽中,添加一個<profile>標簽,用于限定Maven項目默認的JDK版本。

<profiles> <!-- 在已有的profiles標簽中添加profile標簽 --> <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>11</jdk> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion> </properties> </profile></profiles><!-- 讓增加的profile生效 --><activeProfiles> <activeProfile>jdk-11</activeProfile></activeProfiles>6.總結(jié)

本文主要介紹了 Maven 倉庫相關(guān)知識。Maven 倉庫用于存放依賴和插件,分為本地倉庫和遠程倉庫(中央倉庫、私服、其他公共倉庫)。本地倉庫是本地計算機目錄,默認地址可修改。中央倉庫由 Maven 社區(qū)管理,默認優(yōu)先從其下載構(gòu)件。遠程倉庫可定制,國內(nèi)常用阿里云和華為云鏡像解決下載問題。還講述了私服及鏡像與私服配合使用,以及在 settings.xml 中通過 Profiles 配置限定項目默認 JDK 版本等內(nèi)容,為 Maven 項目構(gòu)建提供了重要的倉庫管理指導(dǎo)。

轉(zhuǎn)載請注明來自夕逆IT,本文標題:《maven中央倉庫(Maven倉庫如何搭建保姆級教程)》

每一天,每一秒,你所做的決定都會改變你的人生!

發(fā)表評論

快捷回復(fù):

評論列表 (暫無評論,12人圍觀)參與討論

還沒有評論,來說兩句吧...