Maven的使用和配置國內(nèi)源的保姆級教程
1. 什么是Maven?
Maven是?個項(xiàng)目管理工具?;赑OM(Project Object Model,項(xiàng)目對象模型)的概念,Maven可以通過一小段描述信息來管理項(xiàng)目的構(gòu)建,報告和文檔的項(xiàng)目管理工具軟件。
大白話: Maven是?個項(xiàng)目管理工具, 通過pom.xml?件的配置獲取jar包,而不用手動去添加jar包。
2.創(chuàng)建?個Maven項(xiàng)目
IDEA本身已經(jīng)集成了Maven, 我們可以直接使用, 無需安裝。
3.Maven 核心功能
Maven 提供了標(biāo)準(zhǔn)的,跨平臺(Linux, Windows, MacOS等)的自動化項(xiàng)目構(gòu)建方式,當(dāng)我們開發(fā)了一個項(xiàng)目之后, 代碼需要經(jīng)過編譯, 測試, 打包, 發(fā)布等流程, 每次代碼的修改, 都需要經(jīng)過這些流程, 如果代碼反復(fù)調(diào)試修改, 這個流程就需要反復(fù)進(jìn)行, 就顯得特別麻煩, 而Maven 給我們提供了?套簡單的命令來完成項(xiàng)目的構(gòu)建。
比如, 點(diǎn)擊package, 就可以完成項(xiàng)目的打包操作
jar包和war包都是?種壓縮文件
jar包就是把開發(fā)?員已經(jīng)寫好的?些代碼進(jìn)行打包. 打好的jar包就可以引入到其他項(xiàng)目中, 也可以直接使用這些jar包中的類和屬性. 另外也可以打成可執(zhí)行的jar包, 這樣的包就可以通過java -jar命令來執(zhí)行war包可以理解為是?個web項(xiàng)目,里面是項(xiàng)目的所有東西, 通常用于網(wǎng)站.
依賴管理
上面說到, Maven是?個項(xiàng)目管理工具, 通過pom.xml文件的配置獲取jar包,而不用手動去添加jar包獲取的jar包, 其實(shí)就是依賴
pom.xml 就是maven 的配置文件,用以描述項(xiàng)目的各種信息。
如果使用Maven, 我們只需要在pom.xml中引入mysql-connector-java的依賴就可以了。
<dependencies> <!--??放置項(xiàng)?的依賴坐標(biāo), 可為多個 --> </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木有報紅色了,左邊也多了一些依賴。
4.使用Maven Helper插件
在idea當(dāng)中安裝一個插件:
1.打開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è)會出現(xiàn)一個“Dependency Analyzer”選項(xiàng)卡。點(diǎn)擊該選項(xiàng)卡,可以看到以下三個選項(xiàng):
Conflicts:查看依賴沖突
All Dependencies as List:以列表形式查看所有依賴
All Dependencies as Tree:以樹狀圖形式查看所有依賴
解決依賴沖突
當(dāng)選擇“Conflicts”時,如果沒有依賴沖突,右上角會顯示“No Conflicts”。
如果有依賴沖突,沖突信息會顯示在下方。可以選擇沖突的依賴并點(diǎn)擊“Exclude”按鈕。
點(diǎn)擊“Exclude”后,插件會自動在pom.xml文件中添加標(biāo)簽,排除子依賴,從而解決沖突。
通過以上方法,Maven Helper插件可以幫助開發(fā)者快速解決依賴沖突,提高開發(fā)效率。
5.倉庫配置
本地倉庫
我們通過短短幾行代碼, 就把依賴jar包放在了項(xiàng)目里, 具體是如何做的呢?
這個代碼, 我們稱之為 “坐標(biāo)”, 也就是唯?的.
在Maven中, 根據(jù) groupId、artifactId、version 的配置, 來唯?識別?個 jar 包, 缺?不可.
當(dāng)我們在pom文件中配置完依賴之后, 點(diǎn)擊刷新, Maven會根據(jù)坐標(biāo)的配置, 去倉庫?尋找Jar包, 并把他下載下來, 添加到項(xiàng)?中. 這個Jar包下載的地方就稱為倉庫.
倉庫:用于存儲資源,管理各種jar包。
Maven倉庫分為兩大類: 本地倉庫和遠(yuǎn)程倉庫. 其中遠(yuǎn)程倉庫?分為中央倉庫, 私 服和其他公共庫。
本地倉庫:
- 本地倉庫: 自己計算機(jī)上的?個目錄(用來存儲jar包)
- 當(dāng)項(xiàng)目中引入對應(yīng)依賴jar包后,首先會查找本地倉庫中是否有對應(yīng)的jar包
- • 如果有,則在項(xiàng)目直接引用
- • 如果沒有,則去 中央倉庫中下載對應(yīng)的jar包到本地倉庫
本地倉庫地址可以通過Maven配置查看:
File -> Settings
查看該倉庫目錄, 可以看到該目錄下有很多的jar(最開始是空的, 隨著Maven的使用, 該倉庫下文件會越來越多)
中央倉庫
配置遠(yuǎn)程倉庫:
在 pom.xml
或 settings.xml
中添加倉庫配置:
<repositories> <repository> <id>aliyun</id> <url>https://maven.aliyun.com/repository/public</url> </repository> </repositories>
私有服務(wù)器, 也稱為私 服
私 服: ?般由公司團(tuán)隊搭建的私有倉庫。
私 服屬于某個公司,或者某個部門, 往往需要?定權(quán)限。
有了私 服之后, Maven依賴下載的順序又發(fā)生了變化。
當(dāng)Maven需要下載資源的時候:
- 先從本地倉庫獲取, 本地倉庫存在, 則直接返回
- 如果本地倉庫沒有, 就從私 服請求, 私 服存在該資源, 就直接返回
- 如果私 服上不存在該資源,則從中央倉庫下載, 中央倉庫不存在, 就報錯了…
- 如果中央倉庫中存在, 就先緩存在私 服上之后,再緩存到本地倉庫里, 再為Maven的下載請求提供服務(wù)
設(shè)置國內(nèi)源
因?yàn)橹醒雮}庫在國外, 所以下載起來會比較慢, 所以咱們選擇借助國內(nèi)?些公開的遠(yuǎn)程倉庫來下載資源接下來介紹, 如何設(shè)置國內(nèi)源。
查看配置文件的地址, 如上圖所示, Maven配置文件地址為: D:\Maven.m2\settings.xml
注意:
不同電腦設(shè)置的Maven路徑不同:settings和repository 可以修改設(shè)置為其他路徑, 兩個路徑不要有中文。
配置國內(nèi)源:
Maven 倉庫默認(rèn)在國外https://mvnrepository.com/, 國內(nèi)使用時會比較慢,我們可以更換為阿里云的倉庫也可以選擇別的倉庫。
在 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)容, 只對當(dāng)前項(xiàng)目生效, 為了讓后續(xù)新建的項(xiàng)目也生效, 需要重新設(shè)置?下新項(xiàng)目的Settings。
當(dāng)前項(xiàng)目和新項(xiàng)目共用?個setttings文件即可, 所以新項(xiàng)?的設(shè)置, 只需要確認(rèn)?下settings文件的路徑即可。
6.總結(jié)
通過以上步驟,你可以輕松配置 Maven 并使用國內(nèi)鏡像加速依賴下載。Maven 的強(qiáng)大之處在于其依賴管理和插件生態(tài)系統(tǒng),掌握這些技能將顯著提升你的開發(fā)效率。
以上就是Maven的使用和配置國內(nèi)源的保姆級教程的詳細(xì)內(nèi)容,更多關(guān)于Maven使用和配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Mybatis實(shí)體類屬性與數(shù)據(jù)庫不一致解決方案
這篇文章主要介紹了Mybatis實(shí)體類屬性與數(shù)據(jù)庫不一致解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10idea中service或者mapper引入報紅的問題及解決
在使用IntelliJ IDEA開發(fā)SpringBoot項(xiàng)目時,有時會遇到Service或Mapper接口引入時報紅但不影響項(xiàng)目運(yùn)行的情況,這主要是因?yàn)镮DEA的檢查級別設(shè)置問題,解決方法是將有問題的Error級別改為編譯通過的安全級別,即可消除報紅2024-09-09Java編程一個隨機(jī)數(shù)產(chǎn)生模塊代碼分享
這篇文章主要介紹了Java編程一個隨機(jī)數(shù)產(chǎn)生模塊代碼分享,具有一定借鑒價值,需要的朋友可以參考下。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)者詳解,具有一定參考價值,需要的朋友可以了解下。2017-11-11教你如何用Jenkins自動化部署項(xiàng)目(從零到搭建完成)
這篇文章主要介紹了教你如何用Jenkins自動化部署項(xiàng)目(從零到搭建完成),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題
這篇文章主要介紹了SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07