柚子快報(bào)激活碼778899分享:MAVEN學(xué)習(xí)筆記
柚子快報(bào)激活碼778899分享:MAVEN學(xué)習(xí)筆記
1.為什么需要學(xué)習(xí)Maven?
:::info ①為了幫助我們管理 項(xiàng)目中的Jar包,如果要在項(xiàng)目中使用第三方包,那么就需要去下載jar包,再將jar包添加到當(dāng)前項(xiàng)目的目錄中,再去將jar包選擇添加為當(dāng)前項(xiàng)目的依賴 ::: :::danger 該方式的弊端: 1.尋找jar包: 官網(wǎng)網(wǎng)站提供的地址進(jìn)行下載 -> 相對(duì)比較麻煩 解決: -> 提供一個(gè)中央的下載方式,所有第三方的jar都可以在該路徑中下載
2.下載完成后需要在當(dāng)前項(xiàng)目路徑中創(chuàng)建目錄,再添加到項(xiàng)目依賴中
-> 1.當(dāng)創(chuàng)建的項(xiàng)目較多時(shí),每個(gè)項(xiàng)目中都有存放依賴的目錄 會(huì)導(dǎo)致項(xiàng)目的文件過大,依賴會(huì)重復(fù)保存
-> 2.當(dāng)項(xiàng)目發(fā)送給其他開發(fā)者使用時(shí),需要手動(dòng)添加 jar 包到項(xiàng)目路徑中 比較麻煩
解決方式: -> 提供一個(gè)本地當(dāng)前開發(fā)環(huán)境(WIN)的倉(cāng)庫(kù),所有的項(xiàng)目jar包,都可以通過某種方式直接使用該倉(cāng)庫(kù)中所有jar包
可以達(dá)到多個(gè)項(xiàng)目共享同一個(gè) jar包
-> 可以提供一個(gè) jar包 的識(shí)別路徑,包括jar包的名稱 版本 等信息 可以自動(dòng)去外部的中央倉(cāng)庫(kù)進(jìn)行下載
下載到本地當(dāng)前開發(fā)環(huán)境(WIN)的倉(cāng)庫(kù)中 實(shí)現(xiàn)自動(dòng)下載
-> 該方式可以和IDEA進(jìn)行互通,作為IDEA中的一個(gè)插件,當(dāng)項(xiàng)目打開后,該插件根據(jù)給定的jar包信息,自動(dòng)進(jìn)行識(shí)別
從本地開發(fā)環(huán)境中進(jìn)行尋找(WIN),如果尋找不到,那么自動(dòng)下載,尋找到,那么添加到當(dāng)前IDEA中
::: :::info ② 當(dāng)一個(gè)大項(xiàng)目中包含有多個(gè)小項(xiàng)目,那么每個(gè)項(xiàng)目之間的Jar包管理,可能會(huì)存在有沖突問題 沖突問題: 當(dāng)A子項(xiàng)目使用的Mysql版本是 5.1.49版本,但是在B子項(xiàng)目中使用的Mysql版本 8.1.12版本 可能兩個(gè)版本的Jar包中對(duì)于Driver類路徑不一樣,那么后續(xù)代碼運(yùn)行過程中,對(duì)于的類加載不到 需要將多個(gè)版本進(jìn)行統(tǒng)一 ::: 上述問題: MAVEN都可以解決
2.依賴管理
jar之間的依賴關(guān)系,jar包管理問題統(tǒng)稱為依賴管理
比如:對(duì)于Mysql來(lái)說(shuō),其內(nèi)部也使用了其他的第三方Jar包 根據(jù)當(dāng)前import關(guān)鍵字從其他jar包中獲取所需要的類
3.Maven安裝及配置
下載:
Maven – Download Apache Maven 下載時(shí)避免選擇最新版本,Maven版本已提供教學(xué)安裝包 apache-maven-3.5.2.zip
配置:
Maven配置
解壓 apache-maven-3.5.2.zip 之后跳轉(zhuǎn)目錄層級(jí),如下圖所示:
配置遠(yuǎn)程倉(cāng)庫(kù)鏡像 在conf/settings目錄中的mirrors標(biāo)簽中配置阿里云鏡像倉(cāng)庫(kù):
配置本地倉(cāng)庫(kù)
本地倉(cāng)庫(kù)路徑根據(jù)自己當(dāng)前路徑配置
配置環(huán)境變量
在當(dāng)前系統(tǒng)環(huán)境變量中新建系統(tǒng)變量
配置Path路徑
測(cè)試
idea配置
:::info 1.項(xiàng)目配置: 只在當(dāng)前項(xiàng)目中有效 file -> settings 2.默認(rèn)配置: 在所有當(dāng)前idea創(chuàng)建的項(xiàng)目中,都使用該配置作為其默認(rèn)配置 :::
默認(rèn)配置步驟:
在Idea的歡迎頁(yè)面選擇:
配置IDEA中的Maven設(shè)置
創(chuàng)建Maven項(xiàng)目
點(diǎn)擊創(chuàng)建新項(xiàng)目,參數(shù)選擇如下:
創(chuàng)建后,第一次使用會(huì)下載插件,需要等待一段時(shí)間
插件功能解釋
clean 清除 是將所有編譯后的target目錄文件進(jìn)行清除compile 編譯 是將項(xiàng)目中所有代碼進(jìn)行編譯,生成的文件保存在target目錄中,代碼有錯(cuò)誤,則編譯失敗,同時(shí)編譯時(shí)也會(huì)下載依賴test 測(cè)試 可以對(duì)代碼進(jìn)行運(yùn)行測(cè)試package 打包 對(duì)當(dāng)前項(xiàng)目所有代碼進(jìn)行編譯,將編譯后的文件按照包路徑保存到到以.jar結(jié)尾的文件中install 安裝 將當(dāng)前項(xiàng)目進(jìn)行編譯,打包,再將jar包按照一定的目錄層級(jí)保存到本地倉(cāng)庫(kù)中 :::warning 注意:功能按鍵出錯(cuò)了,日志內(nèi)容解釋如下 :::
jar包尋找路徑
在本地倉(cāng)庫(kù)中,jar包按照一定的規(guī)則進(jìn)行保存,規(guī)則如下:
Maven項(xiàng)目開發(fā)目錄層級(jí)
項(xiàng)目創(chuàng)建好后,會(huì)自動(dòng)生成一些目錄層級(jí),每個(gè)目錄層級(jí)中保存的文件類型不一致,所以需要按規(guī)范使用目錄 :::warning 注意:其中External Libraries 中保存了當(dāng)前項(xiàng)目所添加的第三方依賴 :::
Maven項(xiàng)目添加外部依賴
注意:添加外部依賴需要在當(dāng)前Pom文件中添加如下內(nèi)容: 其中標(biāo)簽只能出現(xiàn)一次,在該標(biāo)簽中,每添加一個(gè)第三方依賴就編寫一個(gè)的標(biāo)簽內(nèi)容,標(biāo)簽內(nèi)容由依賴的坐標(biāo)(GAV)組成 坐標(biāo)由g-a-v組成 [1]groupId:公司或組織的域名倒序+當(dāng)前項(xiàng)目名稱 [2]artifactId:當(dāng)前項(xiàng)目的模塊名稱 [3]version:當(dāng)前模塊的版本 當(dāng)依賴添加完成后,需要重載當(dāng)前項(xiàng)目
重載項(xiàng)目
重載項(xiàng)目的時(shí)機(jī): 1.當(dāng)Pom文件中內(nèi)容被修改需要生效時(shí) 2.當(dāng)前項(xiàng)目第一次打開時(shí),如果沒有自動(dòng)加載依賴,那么需要重載項(xiàng)目,可以通過 External Libraries 查看依賴是否被加載成功
4.Maven依賴使用
junit依賴及Scope范圍
junit依賴的作用: 可以在給定的類中 某個(gè)方法上添加一些測(cè)試的注釋 可以直接運(yùn)行代碼
scope:
用于限定其作用范圍,當(dāng)給定的是Test那么其范圍只能在Test類型的目錄中使用該依賴compile【默認(rèn)值】:在main、test、Tomcat【服務(wù)器】下均有效provided:在main、test下均有效,Tomcat【服務(wù)器】無(wú)效
對(duì)于當(dāng)前類中如果添加了Test注釋標(biāo)記,那么整個(gè)類都可以直接運(yùn)行,運(yùn)行時(shí)所有的Test標(biāo)記的方法都會(huì)被執(zhí)行
依賴?yán)^承
在大項(xiàng)目中創(chuàng)建子項(xiàng)目
注意: ①子項(xiàng)目可以繼承父項(xiàng)目中的依賴,但是子項(xiàng)目中也可以添加對(duì)相同名稱版本不同的依賴,根據(jù)就近原則,選擇當(dāng)前依賴最近的jar包版本 ② 子項(xiàng)目之間默認(rèn)是沒有相互的依賴關(guān)系的,獲取不到內(nèi)部定義的類信息 ③ 如果子項(xiàng)目之間存在由需求關(guān)系,那么可以在pom中添加其他子項(xiàng)目相關(guān)的依賴信息(GAV)并且添加后,需要再重載當(dāng)前項(xiàng)目 ④ 當(dāng)前項(xiàng)目需要獲取其他非公共項(xiàng)目時(shí),需要將項(xiàng)目通過install安裝到本地倉(cāng)庫(kù)中,再對(duì)當(dāng)前項(xiàng)目添加依賴信息,再重載項(xiàng)目,當(dāng)要添加的項(xiàng)目是同屬一個(gè)大項(xiàng)目中的子項(xiàng)目時(shí),此時(shí)不需要再通過install進(jìn)行安裝
父子項(xiàng)目中依賴文件信息描述
在子項(xiàng)目中通過parent標(biāo)簽可以其父項(xiàng)目 父項(xiàng)目中的 groupId和version會(huì)被當(dāng)前子項(xiàng)目所使用所以對(duì)于當(dāng)前子項(xiàng)目的描述 只有 artifactId
父項(xiàng)目中包含由 GAV 和 packaging 一般情況下選擇使用pom作為管理 modules 中表示了當(dāng)前父項(xiàng)目存在有那些子項(xiàng)目 其項(xiàng)目名稱為什么
配置參數(shù)信息
properties中可以添加自定義的變量信息,其格式為<變量名>變量值變量名> 對(duì)于添加的配置信息 可以在當(dāng)前Pom中的任意位置進(jìn)行調(diào)用其調(diào)用格式為${變量名} 應(yīng)用場(chǎng)景: 當(dāng)pom文件中所添加的依賴非常多時(shí),那么對(duì)于其版本可能經(jīng)常會(huì)更改,那么查找依賴會(huì)非常麻煩,于是可以在properties中定義版本,直接進(jìn)行查看properties修改即可
柚子快報(bào)激活碼778899分享:MAVEN學(xué)習(xí)筆記
文章來(lái)源
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。