Maven的使用和配置國(guó)內(nèi)源的保姆級(jí)教程
1. 什么是Maven?
Maven是?個(gè)項(xiàng)目管理工具?;赑OM(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包中的類和屬性. 另外也可以打成可執(zhí)行的jar包, 這樣的包就可以通過(guò)java -jar命令來(lái)執(zhí)行war包可以理解為是?個(gè)web項(xiàng)目,里面是項(xiàng)目的所有東西, 通常用于網(wǎng)站.
依賴管理
上面說(shuō)到, Maven是?個(gè)項(xiàng)目管理工具, 通過(guò)pom.xml文件的配置獲取jar包,而不用手動(dòng)去添加jar包獲取的jar包, 其實(shí)就是依賴
pom.xml 就是maven 的配置文件,用以描述項(xiàng)目的各種信息。
如果使用Maven, 我們只需要在pom.xml中引入mysql-connector-java的依賴就可以了。
<dependencies> <!--??放置項(xiàng)?的依賴坐標(biāo), 可為多個(gè) --> </dependencies>
在pom文件 標(biāo)簽內(nè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)紅色了,左邊也多了一些依賴。
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
查看依賴關(guān)系
安裝完成后,在項(xiàng)目的pom.xml文件右側(cè)會(huì)出現(xiàn)一個(gè)“Dependency Analyzer”選項(xiàng)卡。點(diǎn)擊該選項(xiàng)卡,可以看到以下三個(gè)選項(xiàng):
Conflicts:查看依賴沖突
All Dependencies as List:以列表形式查看所有依賴
All Dependencies as Tree:以樹(shù)狀圖形式查看所有依賴
解決依賴沖突
當(dāng)選擇“Conflicts”時(shí),如果沒(méi)有依賴沖突,右上角會(huì)顯示“No Conflicts”。
如果有依賴沖突,沖突信息會(huì)顯示在下方??梢赃x擇沖突的依賴并點(diǎn)擊“Exclude”按鈕。
點(diǎn)擊“Exclude”后,插件會(huì)自動(dòng)在pom.xml文件中添加標(biāo)簽,排除子依賴,從而解決沖突。
通過(guò)以上方法,Maven Helper插件可以幫助開(kāi)發(fā)者快速解決依賴沖突,提高開(kāi)發(fā)效率。
5.倉(cāng)庫(kù)配置
本地倉(cāng)庫(kù)
我們通過(guò)短短幾行代碼, 就把依賴jar包放在了項(xiàng)目里, 具體是如何做的呢?
這個(gè)代碼, 我們稱之為 “坐標(biāo)”, 也就是唯?的.
在Maven中, 根據(jù) groupId、artifactId、version 的配置, 來(lái)唯?識(shí)別?個(gè) jar 包, 缺?不可.
當(dāng)我們?cè)趐om文件中配置完依賴之后, 點(diǎn)擊刷新, Maven會(huì)根據(jù)坐標(biāo)的配置, 去倉(cāng)庫(kù)?尋找Jar包, 并把他下載下來(lái), 添加到項(xiàng)?中. 這個(gè)Jar包下載的地方就稱為倉(cāng)庫(kù).
倉(cāng)庫(kù):用于存儲(chǔ)資源,管理各種jar包。
Maven倉(cāng)庫(kù)分為兩大類: 本地倉(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)依賴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ù)器, 也稱為私 服
私 服: ?般由公司團(tuán)隊(duì)搭建的私有倉(cāng)庫(kù)。
私 服屬于某個(gè)公司,或者某個(gè)部門, 往往需要?定權(quán)限。
有了私 服之后, Maven依賴下載的順序又發(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)鏡像加速依賴下載。Maven 的強(qiáng)大之處在于其依賴管理和插件生態(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)文章
Mybatis實(shí)體類屬性與數(shù)據(jù)庫(kù)不一致解決方案
這篇文章主要介紹了Mybatis實(shí)體類屬性與數(shù)據(jù)庫(kù)不一致解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10idea中service或者mapper引入報(bào)紅的問(wèn)題及解決
在使用IntelliJ IDEA開(kāi)發(fā)SpringBoot項(xiàng)目時(shí),有時(shí)會(huì)遇到Service或Mapper接口引入時(shí)報(bào)紅但不影響項(xiàng)目運(yùn)行的情況,這主要是因?yàn)镮DEA的檢查級(jí)別設(shè)置問(wèn)題,解決方法是將有問(wèn)題的Error級(jí)別改為編譯通過(guò)的安全級(jí)別,即可消除報(bào)紅2024-09-09Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享
這篇文章主要介紹了Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12java并發(fā)學(xué)習(xí)之BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者詳解
這篇文章主要介紹了java并發(fā)學(xué)習(xí)之BlockingQueue實(shí)現(xiàn)生產(chǎn)者消費(fèi)者詳解,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11教你如何用Jenkins自動(dòng)化部署項(xiàng)目(從零到搭建完成)
這篇文章主要介紹了教你如何用Jenkins自動(dòng)化部署項(xiàng)目(從零到搭建完成),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10spring使用OXM進(jìn)行對(duì)象XML映射解析
這篇文章主要介紹了spring使用OXM進(jìn)行對(duì)象XML映射解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11SpringBoot整合Mybatis,解決TypeAliases配置失敗的問(wèn)題
這篇文章主要介紹了SpringBoot整合Mybatis,解決TypeAliases配置失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot整合Redis時(shí)遇到連接問(wèn)題的解決方法
在使用Spring Boot整合Redis的過(guò)程中,經(jīng)常會(huì)遇到連接問(wèn)題,尤其是當(dāng)Redis服務(wù)部署在遠(yuǎn)程服務(wù)器上時(shí),所以本文給大家介紹了SpringBoot整合Redis遇到連接問(wèn)題的解決方法,需要的朋友可以參考下2024-11-11