Maven的使用和配置國(guó)內(nèi)源的保姆級(jí)教程
1. 什么是Maven?
Maven是?個(gè)項(xiàng)目管理工具。基于POM(Project Object Model,項(xiàng)目對(duì)象模型)的概念,Maven可以通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的項(xiàng)目管理工具軟件。
大白話: Maven是?個(gè)項(xiàng)目管理工具, 通過(guò)pom.xml?件的配置獲取jar包,而不用手動(dòng)去添加jar包。
2.創(chuàng)建?個(gè)Maven項(xiàng)目
IDEA本身已經(jīng)集成了Maven, 我們可以直接使用, 無(wú)需安裝。

3.Maven 核心功能
Maven 提供了標(biāo)準(zhǔn)的,跨平臺(tái)(Linux, Windows, MacOS等)的自動(dòng)化項(xiàng)目構(gòu)建方式,當(dāng)我們開(kāi)發(fā)了一個(gè)項(xiàng)目之后, 代碼需要經(jīng)過(guò)編譯, 測(cè)試, 打包, 發(fā)布等流程, 每次代碼的修改, 都需要經(jīng)過(guò)這些流程, 如果代碼反復(fù)調(diào)試修改, 這個(gè)流程就需要反復(fù)進(jìn)行, 就顯得特別麻煩, 而Maven 給我們提供了?套簡(jiǎn)單的命令來(lái)完成項(xiàng)目的構(gòu)建。

比如, 點(diǎn)擊package, 就可以完成項(xiàng)目的打包操作


jar包和war包都是?種壓縮文件
jar包就是把開(kāi)發(fā)?員已經(jīng)寫(xiě)好的?些代碼進(jìn)行打包. 打好的jar包就可以引入到其他項(xiàng)目中, 也可以直接使用這些jar包中的類(lèi)和屬性. 另外也可以打成可執(zhí)行的jar包, 這樣的包就可以通過(guò)java -jar命令來(lái)執(zhí)行war包可以理解為是?個(gè)web項(xiàng)目,里面是項(xiàng)目的所有東西, 通常用于網(wǎng)站.
依賴(lài)管理
上面說(shuō)到, Maven是?個(gè)項(xiàng)目管理工具, 通過(guò)pom.xml文件的配置獲取jar包,而不用手動(dòng)去添加jar包獲取的jar包, 其實(shí)就是依賴(lài)
pom.xml 就是maven 的配置文件,用以描述項(xiàng)目的各種信息。
如果使用Maven, 我們只需要在pom.xml中引入mysql-connector-java的依賴(lài)就可以了。
<dependencies> <!--??放置項(xiàng)?的依賴(lài)坐標(biāo), 可為多個(gè) --> </dependencies>
在pom文件 標(biāo)簽內(nèi), 添加依賴(lài)坐標(biāo):
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
如下圖:


2.然后點(diǎn)擊右上角的m刷新pom文件。

可以看到pom木有報(bào)紅色了,左邊也多了一些依賴(lài)。
4.使用Maven Helper插件
在idea當(dāng)中安裝一個(gè)插件:
1.打開(kāi)IntelliJ IDEA,選擇“File”→“Settings…”
2.點(diǎn)擊“Plugins”→“Marketplace”
3.在搜索框中輸入“maven helper”,點(diǎn)擊“Install”進(jìn)行安裝
4.安裝完成后,并重啟IDEA

查看依賴(lài)關(guān)系

安裝完成后,在項(xiàng)目的pom.xml文件右側(cè)會(huì)出現(xiàn)一個(gè)“Dependency Analyzer”選項(xiàng)卡。點(diǎn)擊該選項(xiàng)卡,可以看到以下三個(gè)選項(xiàng):
Conflicts:查看依賴(lài)沖突
All Dependencies as List:以列表形式查看所有依賴(lài)

All Dependencies as Tree:以樹(shù)狀圖形式查看所有依賴(lài)

解決依賴(lài)沖突
當(dāng)選擇“Conflicts”時(shí),如果沒(méi)有依賴(lài)沖突,右上角會(huì)顯示“No Conflicts”。

如果有依賴(lài)沖突,沖突信息會(huì)顯示在下方??梢赃x擇沖突的依賴(lài)并點(diǎn)擊“Exclude”按鈕。
點(diǎn)擊“Exclude”后,插件會(huì)自動(dòng)在pom.xml文件中添加標(biāo)簽,排除子依賴(lài),從而解決沖突。
通過(guò)以上方法,Maven Helper插件可以幫助開(kāi)發(fā)者快速解決依賴(lài)沖突,提高開(kāi)發(fā)效率。
5.倉(cāng)庫(kù)配置
本地倉(cāng)庫(kù)
我們通過(guò)短短幾行代碼, 就把依賴(lài)jar包放在了項(xiàng)目里, 具體是如何做的呢?
這個(gè)代碼, 我們稱(chēng)之為 “坐標(biāo)”, 也就是唯?的.
在Maven中, 根據(jù) groupId、artifactId、version 的配置, 來(lái)唯?識(shí)別?個(gè) jar 包, 缺?不可.
當(dāng)我們?cè)趐om文件中配置完依賴(lài)之后, 點(diǎn)擊刷新, Maven會(huì)根據(jù)坐標(biāo)的配置, 去倉(cāng)庫(kù)?尋找Jar包, 并把他下載下來(lái), 添加到項(xiàng)?中. 這個(gè)Jar包下載的地方就稱(chēng)為倉(cāng)庫(kù).
倉(cāng)庫(kù):用于存儲(chǔ)資源,管理各種jar包。

Maven倉(cāng)庫(kù)分為兩大類(lèi): 本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù). 其中遠(yuǎn)程倉(cāng)庫(kù)?分為中央倉(cāng)庫(kù), 私 服和其他公共庫(kù)。
本地倉(cāng)庫(kù):
- 本地倉(cāng)庫(kù): 自己計(jì)算機(jī)上的?個(gè)目錄(用來(lái)存儲(chǔ)jar包)
- 當(dāng)項(xiàng)目中引入對(duì)應(yīng)依賴(lài)jar包后,首先會(huì)查找本地倉(cāng)庫(kù)中是否有對(duì)應(yīng)的jar包
- • 如果有,則在項(xiàng)目直接引用
- • 如果沒(méi)有,則去 中央倉(cāng)庫(kù)中下載對(duì)應(yīng)的jar包到本地倉(cāng)庫(kù)

本地倉(cāng)庫(kù)地址可以通過(guò)Maven配置查看:
File -> Settings

查看該倉(cāng)庫(kù)目錄, 可以看到該目錄下有很多的jar(最開(kāi)始是空的, 隨著Maven的使用, 該倉(cāng)庫(kù)下文件會(huì)越來(lái)越多)
中央倉(cāng)庫(kù)
配置遠(yuǎn)程倉(cāng)庫(kù):
在 pom.xml 或 settings.xml 中添加倉(cāng)庫(kù)配置:
<repositories>
<repository>
<id>aliyun</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
私有服務(wù)器, 也稱(chēng)為私 服
私 服: ?般由公司團(tuán)隊(duì)搭建的私有倉(cāng)庫(kù)。
私 服屬于某個(gè)公司,或者某個(gè)部門(mén), 往往需要?定權(quán)限。
有了私 服之后, Maven依賴(lài)下載的順序又發(fā)生了變化。

當(dāng)Maven需要下載資源的時(shí)候:
- 先從本地倉(cāng)庫(kù)獲取, 本地倉(cāng)庫(kù)存在, 則直接返回
- 如果本地倉(cāng)庫(kù)沒(méi)有, 就從私 服請(qǐng)求, 私 服存在該資源, 就直接返回
- 如果私 服上不存在該資源,則從中央倉(cāng)庫(kù)下載, 中央倉(cāng)庫(kù)不存在, 就報(bào)錯(cuò)了…
- 如果中央倉(cāng)庫(kù)中存在, 就先緩存在私 服上之后,再緩存到本地倉(cāng)庫(kù)里, 再為Maven的下載請(qǐng)求提供服務(wù)
設(shè)置國(guó)內(nèi)源
因?yàn)橹醒雮}(cāng)庫(kù)在國(guó)外, 所以下載起來(lái)會(huì)比較慢, 所以咱們選擇借助國(guó)內(nèi)?些公開(kāi)的遠(yuǎn)程倉(cāng)庫(kù)來(lái)下載資源接下來(lái)介紹, 如何設(shè)置國(guó)內(nèi)源。

查看配置文件的地址, 如上圖所示, Maven配置文件地址為: D:\Maven.m2\settings.xml
注意:
不同電腦設(shè)置的Maven路徑不同:settings和repository 可以修改設(shè)置為其他路徑, 兩個(gè)路徑不要有中文。
配置國(guó)內(nèi)源:
Maven 倉(cāng)庫(kù)默認(rèn)在國(guó)外https://mvnrepository.com/, 國(guó)內(nèi)使用時(shí)會(huì)比較慢,我們可以更換為阿里云的倉(cāng)庫(kù)也可以選擇別的倉(cāng)庫(kù)。
在 settings.xml 中在 mirrors 節(jié)點(diǎn)上添加鏡像配置:
<mirrors>
<mirror>
<id>aliyun</id>
<name>阿里云公共鏡像</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
上述配置的內(nèi)容, 只對(duì)當(dāng)前項(xiàng)目生效, 為了讓后續(xù)新建的項(xiàng)目也生效, 需要重新設(shè)置?下新項(xiàng)目的Settings。

當(dāng)前項(xiàng)目和新項(xiàng)目共用?個(gè)setttings文件即可, 所以新項(xiàng)?的設(shè)置, 只需要確認(rèn)?下settings文件的路徑即可。

6.總結(jié)
通過(guò)以上步驟,你可以輕松配置 Maven 并使用國(guó)內(nèi)鏡像加速依賴(lài)下載。Maven 的強(qiáng)大之處在于其依賴(lài)管理和插件生態(tài)系統(tǒng),掌握這些技能將顯著提升你的開(kāi)發(fā)效率。
以上就是Maven的使用和配置國(guó)內(nèi)源的保姆級(jí)教程的詳細(xì)內(nèi)容,更多關(guān)于Maven使用和配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java mysql數(shù)據(jù)庫(kù)并進(jìn)行內(nèi)容查詢(xún)實(shí)例代碼
這篇文章主要介紹了Java mysql數(shù)據(jù)庫(kù)并進(jìn)行內(nèi)容查詢(xún)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11
IDEA2020.3.2版本自動(dòng)注釋類(lèi)和方法注釋模板配置步驟詳解
這篇文章主要介紹了IDEA2020.3.2版本自動(dòng)注釋類(lèi)和方法注釋模板配置步驟,本文給大家分享了我自己創(chuàng)建過(guò)程通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
將ResultSet中得到的一行或多行結(jié)果集封裝成對(duì)象的實(shí)例
這篇文章主要介紹了將ResultSet中得到的一行或多行結(jié)果集封裝成對(duì)象的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
解決IDEA提示:MVC DispatcherServlet servlet contex
在SSM整合配置Spring時(shí)出現(xiàn)錯(cuò)誤,需刪除多余配置文件并重新導(dǎo)入,若屬性解析失敗,清除緩存重啟IDEA,個(gè)人經(jīng)驗(yàn),供參考2025-08-08
Java Character類(lèi)對(duì)單個(gè)字符操作原理解析
這篇文章主要介紹了Java Character類(lèi)對(duì)單個(gè)字符操作原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
重新啟動(dòng)IDEA時(shí)maven項(xiàng)目SSM框架文件變色所有@注解失效
這篇文章主要介紹了重新啟動(dòng)IDEA時(shí)maven項(xiàng)目SSM框架文件變色所有@注解失效,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Java中的collection集合類(lèi)型總結(jié)
Java的集合類(lèi)型都是對(duì)java.util包中Collection接口的繼承,這里我們主要介紹依賴(lài)于collection的一些主分支,一起來(lái)看一下Java中的collection集合類(lèi)型總結(jié)2016-05-05
Java?lambda表達(dá)式與泛型整理總結(jié)
Lambda?表達(dá)式(lambda?expression)是一個(gè)匿名函數(shù),Lambda表達(dá)式基于數(shù)學(xué)中的λ演算得名。泛型編程,故如其名,是一個(gè)泛化的編程方式。其實(shí)現(xiàn)原理為程序員編寫(xiě)一個(gè)函數(shù)/類(lèi)的代碼示例,讓編譯器去填補(bǔ)出不同的函數(shù)實(shí)現(xiàn)2022-07-07
SpringBoot兩種方式接入DeepSeek的實(shí)現(xiàn)
本文主要介紹了SpringBoot兩種方式接入DeepSeek的實(shí)現(xiàn),包括HttpClient方式和基于spring-ai-openai的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03

