后端 | Maven | 依賴管理
筆記來(lái)源:黑馬程序員2023新版JavaWeb開(kāi)發(fā)教程,實(shí)現(xiàn)javaweb企業(yè)開(kāi)發(fā)全流程
一、Maven概述
1、Maven是什么
Maven是apache旗下的一個(gè)開(kāi)源項(xiàng)目,是一款用于管理和構(gòu)建java項(xiàng)目的工具,它基于項(xiàng)目對(duì)象模型(POM)的概念,通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建。
2、Maven的作用
依賴管理:方便快捷的管理項(xiàng)目依賴的資源(jar包),避免版本沖突信息。
統(tǒng)一項(xiàng)目結(jié)構(gòu):提供標(biāo)準(zhǔn)、統(tǒng)一的項(xiàng)目結(jié)構(gòu)。
項(xiàng)目構(gòu)建:標(biāo)準(zhǔn)跨平臺(tái)(Linux、Windows、MacOS)的自動(dòng)化項(xiàng)目構(gòu)建方式。
清理、編譯、測(cè)試、打包、發(fā)布。
3、Maven倉(cāng)庫(kù)
用于存儲(chǔ)資源,管理各種jar包。
本地倉(cāng)庫(kù):自己計(jì)算機(jī)上的一個(gè)目錄。
中央倉(cāng)庫(kù):由Maven團(tuán)隊(duì)維護(hù)的全球唯一的。倉(cāng)庫(kù)地址:https://repo1.maven.org/maven2。
遠(yuǎn)程倉(cāng)庫(kù)(私服):一般由公司團(tuán)隊(duì)搭建的私有倉(cāng)庫(kù)。
4、Maven的安裝
Maven依賴JDK,先準(zhǔn)備JDK環(huán)境,然后在Maven官網(wǎng)下載Maven安裝包,并解壓到本地。
配置本地倉(cāng)庫(kù):修改conf/settings.xml中的<localRepository>為一個(gè)指定目錄。
配置阿里云私服(加速jar包下載):修改conf/settings.xml中的<mirrors>標(biāo)簽,為其添加如下子標(biāo)簽。
配置環(huán)境變量(使得在任意目錄都能運(yùn)行Maven):MAVEN_HOME為maven解壓的目錄,并將其bin目錄加入PATH環(huán)境變量。
測(cè)試
5、Maven坐標(biāo)
什么是坐標(biāo):
Maven中的坐標(biāo)是資源的唯一標(biāo)識(shí),通過(guò)該坐標(biāo)可以唯一定位資源位置。
使用坐標(biāo)來(lái)定義項(xiàng)目或引入項(xiàng)目中需要的依賴。
Maven坐標(biāo)的主要組成:
groupId:定義當(dāng)前Maven項(xiàng)目隸屬組織名稱,通常是域名反寫(xiě)。
artifactId:定義當(dāng)前Maven項(xiàng)目名稱,通常是模塊名稱。
version:定義當(dāng)前項(xiàng)目版本號(hào)。
二、依賴管理
1、依賴配置
依賴:指當(dāng)前項(xiàng)目運(yùn)行時(shí)所需要的jar包,一個(gè)項(xiàng)目中可以引入多個(gè)依賴。
配置:
在pom.xml中編寫(xiě)<dependencies>標(biāo)簽。
在<dependencies>標(biāo)簽中使用<dependency>引入坐標(biāo)。
定義坐標(biāo)的groupId、artifactId、version。
點(diǎn)擊刷新按鈕,引入最新加入的坐標(biāo)。
2、依賴傳遞
依賴具有傳遞性。
直接依賴:在當(dāng)前項(xiàng)目中通過(guò)依賴配置建立的依賴關(guān)系。
間接依賴:被依賴的資源如果依賴其他資源,當(dāng)前項(xiàng)目間接依賴其他資源。
排除依賴:指主動(dòng)斷開(kāi)依賴的資源,被排除的資源無(wú)需指定版本。
3、依賴范圍
依賴的jar包,默認(rèn)情況下,可以在任何地方使用??梢酝ㄟ^(guò)<scope>...</scope>設(shè)置其作用范圍。
作用范圍:
主程序范圍有效(man文件夾范圍內(nèi))。
測(cè)試程序范圍有效(test文件夾范圍內(nèi))。
是否參與打包運(yùn)行(package指令范圍內(nèi))。
scope值:
compile:默認(rèn)值,主程序、測(cè)試程序、打包運(yùn)行。
test:測(cè)試程序。
provided:主程序、測(cè)試程序。
runtime:測(cè)試程序、打包運(yùn)行。
4、生命周期
Maven的生命周期就是為了對(duì)所有的Maven項(xiàng)目構(gòu)建過(guò)程進(jìn)行抽象和統(tǒng)一。
maven中有3套相互獨(dú)立的生命周期(在同一套生命周期中,當(dāng)運(yùn)行后面的階段時(shí),前面的階段都會(huì)運(yùn)行):
clean:清理工作,移除上一次構(gòu)建生成的文件。
default:核心工作。如編譯、測(cè)試、打包、安裝、部署等。
compile:編譯項(xiàng)目源代碼。
test:使用合適的單元測(cè)試框架進(jìn)行測(cè)試。
package:將編譯后的文件打包,如jar、war等。
install:安裝項(xiàng)目到本地倉(cāng)庫(kù)。
site:生成報(bào)告、發(fā)布站點(diǎn)等。