厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

Hello,今天給各位童鞋們分享的是Maven,趕緊拿出小本子記下來吧

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

第一章 Maven簡介

1.1 軟體開發中的階段

需要分析: 分析專案具體完成的功能,有什麼要求, 具體怎麼實現。

設計階段:根據分析的結果, 設計專案的使用什麼技術, 解決難點。

開發階段:編碼實現功能。 編譯程式碼。自我測試

測試階段:專業的測試人員,測整個專案的功能十分符合設計要求。出一個測試報告。

專案的打包,釋出階段: 給使用者安裝專案

1.2 Maven能做什麼

1)專案的自動構建,幫助開發人員做專案程式碼的編譯,測試, 打包,安裝,部署等工作。

2)管理依賴(管理專案中使用的各種jar包)。

依賴:專案中需要使用的其他資源, 常見的是jar 。 比如專案要使用mysql驅動。我們就說專案依賴mysql驅動。

1.3 沒有使用maven怎麼管理依賴

管理jar ,需要從網路中單獨下載某個jar

需要選擇正確版本

手工處理jar檔案之間的依賴。 a。jar裡面要使用b。jar的類。

1.4 什麼是maven

maven是apache基金會的開源專案,使用java語法開發。 Maven 這個單詞的本意是:專家,內行。讀音是[‘meɪv(ə)n] 或 [’mevn]。

maven是專案的自動化構建工具。 管理專案的依賴。

1.5 maven中的概念

①POM (Project Object Model,專案物件模型)

②約定的目錄結構

③座標

④依賴管理

⑤倉庫管理

⑥生命週期

⑦外掛和目標

⑧繼承

⑨聚合

1.6 maven工具的獲取和安裝

安裝:

確定JAVA_HOME 指定jdk的安裝目錄, 如果沒有JAVA_HOME, 需要在windows的環境變數中建立JAVA_HOME, 它的值是jdk的安裝目錄(先建立java_home ,然後在path 加上 %xxx%\bin )

解壓縮 apache-maven-3。3。9-bin。zip ,把解壓後的檔案放到一個目錄中。目錄的路徑不要有中文, 不要有空格。

把maven安裝目錄中下的bin的路徑新增到path中

測試maven的安裝。 在命令列執行 mvn -v

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

maven解壓後的目錄結構

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

maven的其他安裝方式:

確定JAVA_HOME是否有效

在環境變數中,建立一個叫做M2_HOME (或者MAVEN_HOME) ,它的值是maven的安裝目錄M2_HOME=D:\tools\apache-maven-3。3。9

在path環境變數中,加入 %M2_HOME%\bin

測試maven的安裝,在命令列執行 mvn -v

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

第二章Maven的核心概念

2.1 約定的目錄結構

maven專案使用的大多人 遵循的目錄結構。 叫

做約定的目錄結構

一個maven專案是一個資料夾。 比如專案叫做Hello

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

maven的使用方式:

1)maven可以獨立使用: 建立專案,編譯程式碼,測試程式,打包,部署等等

2)maven和idea一起使用:透過idea藉助maven,實現編碼,測試,打包等等

2.2 POM

POM: Project Object Model 專案物件模型, maven把專案當做模型處理。 操作這個模型就是操作專案。

maven透過pom。xml檔案實現 專案的構建和依賴的管理。

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

2.3 座標

座標組成是 groupid, artifiactId, version。 座標概念來自數學。·

座標作用:確定資源的,是

資源的唯一標識

。 在maven中,每個資源都是座標。 座標值是唯一的。簡稱叫gav

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

專案使用gav:

每個maven專案,都需要有一個自己的gav

管理依賴,需要使用其他的jar (也需要使用gav作為標識)。

搜尋座標的地址: https://mvnrepository。com/

2.4 依賴 dependency

依賴:專案中要使用的其他資源(jar)。

需要使用maven表示依賴,管理依賴。 透過使用dependency和gav一起完成依賴的使用

需要在pom。xml檔案中,使用dependencies 和dependency, 還有gav 完成依賴的說明。

格式:

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

2.5 倉庫

倉庫是存東西的,maven的倉庫存放的是:

maven工具自己的jar包。

第三方的其他jar, 比如專案中要使用mysql驅動。

自己寫的程式,可以打包為jar , 存放到倉庫。

倉庫的分類:

本地倉庫(

本機

倉庫): 位於你自己的計算機, 它是磁碟中的某個目錄。

本地倉庫:預設路徑,是你登入作業系統的賬號的目錄中/。m2/repository

C:\Users\NING MEI\。m2\repository

修改本地倉庫的位置:修改maven工具的配置檔案(maven的安裝路徑\conf\setting。xml)

步驟:

1)建立一個目錄,作為倉庫使用。 目錄不要有中文和空格。 目錄不要太深。

例如: D:\openrepository

2)修改setting。xml檔案,指定 D:\openrepository這個目錄

D:/openrepository

遠端倉庫: 需要透過聯網訪問的

1)中央倉庫: 一個ftp伺服器, 存放了所有的資源。

2)中央倉庫的映象: 就是中央倉庫的複製。 在各大主要城市都有映象。

3)私服:在區域網中使用的。 私服就是自己的倉庫伺服器。 在公司內部使用的。

maven使用倉庫: maven自動使用倉庫, 當專案啟動後, 執行了maven的命令, maven首先訪問的是本地倉庫, 從倉庫中獲取所需的jar, 如果本地倉庫沒有 ,需要訪問私服或者中央倉庫或者映象。

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

2.6 maven的生命週期,外掛和命令

maven的生命週期: 專案構建的各個階段。 包括 清理, 編譯, 測試,報告,打包,安裝,部署。

外掛:要完成構建專案的各個階段,要使用maven的命令, 執行命令的功能是透過外掛完成的。外掛就是jar,一些類。

命令: 執行maven功能是 由命令發出的。 比如 mvn compile

單元測試(junit):

junit是一個單元測試的工具, 在java中經常使用。

單元:在java中指的是方法。 一個方法就是一個單元, 方法是測試的最小單位。

作用:使用junit去測試方法是否完成了要求。 開發人員自測。

使用單元測試:

1)加入junit的依賴(一些類和方法)

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

2)在src/test/java 目錄中建立測試類檔案。 寫測試程式碼

單元測試使用的建議:

1。 測試類的定義, 名稱一般是Test+要測試的類名稱

2。 測試類它的包名和要測試的類包名一樣。

3。 在類中定義方法,要測試程式碼。

方法的定義:public方法,

沒有返回值

方法名稱自定義(建議 Test+測試的方法名稱)

方法沒有引數

4。在測試類中的方法,可以單獨執行。 測試類也可以單獨執行

5。在方法的上面加入@Test

命令:

1) mvn clean: 清理命令, 作用刪除以前生成的資料, 刪除target目錄。

外掛: maven-clean-plugin , 版本是 2。5

2)mvn compile:編譯命令,執行的程式碼編譯, 把src/main/java目錄中的java程式碼編譯為class檔案。

同時把class檔案複製到 target/classes目錄。 這個目錄classes是存放類檔案的根目錄(也叫做類路徑,classpath)

外掛: maven-compiler-plugin 版本3。1。 編譯程式碼的外掛

maven-resources-plugin 版本2。6 。 資源外掛, 處理檔案的。 作用是把src/main/resources目錄中的

檔案複製target/classes目錄中。

3)mvn test-compile: 編譯命令, 編譯src/test/java目錄中的原始檔, 把生成的class複製到target/test-classes目錄。同時把src/test/resources目錄中的檔案複製到 test-clasess目錄

外掛: maven-compiler-plugin 版本3。1。 編譯程式碼的外掛

maven-resources-plugin 版本2。6 。 資源外掛, 處理檔案的

4)mvn test:測試命令, 作用執行 test-classes目錄的程式, 測試src/main/java目錄中的主程式程式碼是否符合要求。

外掛: maven-surefire-plugin 版本 2。12。4

5)mvn package:打包,作用是把專案中的資源class檔案和配置檔案都放到一個壓縮檔案中, 預設壓縮檔案是jar型別的。 web應用是war型別, 擴充套件是jar,war的。

外掛:maven-jar-plugin 版本 2。4。 執行打包處理。 生成一個jar擴充套件的檔案, 放在target目錄下。

打包的檔案包含的是 src/main目錄中的所有的生成的class和配置檔案和test無關。

生成的是 ch01-maven-1。0-SNAPSHOT。jar

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

6)mvn install : 把生成的打包的檔案 ,安裝到maven倉庫。

外掛: maven-install-plugin 版本 2。4 。 把生成的jar檔案安裝到本地倉庫。

檢視檢視中的jar檔案:

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

7)mvn deploy 部署主程式(會把本工程打包,按照本工程的座標儲存到本地庫中,並且還會儲存到私服倉庫中。還會自動把專案部署到 web 容器中)。

2.7 自定義配置外掛

在pom。xml檔案中, build標籤中。設定外掛

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

第三章 Maven和idea的整合

3.1 idea中整合maven

idea中有一個自帶的maven。 我們要讓idea使用自己安裝的maven。

選擇File- Settings

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

設定項: -DarchetypeCatalog=internal

2) File - Other Settings

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

同上的設定

3.2 建立基於maven的普通java專案

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

3.3 建立web專案

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

3.4 匯入module到idea

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

第四章 依賴管理

依賴範圍:使用scope表示依賴的範圍。

依賴範圍表示: 這個依賴(jar和裡面類)在專案構建的那個階段起作用。

依賴範圍scope :

compile:預設, 參與構建專案的所有階段

test:測試,在測試階段使用, 比如執行mvn test會使用junit 。

provided: 提供者。 專案在部署到伺服器時,不需要提供這個依賴的jar , 而是由伺服器這個依賴的jar包

明顯的是servlet 和jsp 依賴

第五章 常用設定

1)講的是properties它裡面的配置

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

全域性變數

在properties定義標籤,這個標籤就是一個變數, 標籤的文字就是變數的值。

使用全域性變量表示 多個依賴使用的版本號。

使用步驟:

1。在properties標籤中,定義一個標籤,指定版本的值

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

2。使用全域性變數, 語法 ${變數名}

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

3)使用資源外掛

處理的配置

檔案的資訊, maven預設處理配置檔案

①:maven會把src/main/resources目錄中的檔案, 複製到target/classes目錄下

②:maven只處理src/main/java目錄中的 。java檔案,把這些java檔案編譯為class,複製到 target/classes目錄中。 不處理其他檔案。

厲害!一文帶你深入學習Maven相關知識點,理論原始碼一套搞定

好啦,今天的文章就到這裡了,希望能夠幫助到螢幕前迷茫的你們

相關文章