一.Maven的介紹即相關概念
Maven是一款構建和管理Java專案的工具,它將專案開發和管理過程抽象成一個專案物件模型(POM),提供了一種統一的專案結構。
1.為什麼使用Maven/Maven的作用
(1)多模組支援:當專案非常龐大的時候,就不適合使用package來劃分模組,Maven允許將一個大型專案分解為多個模組或子專案,每個模組可以獨立進行構建,測試和釋出。這種模組化的結構可以更好地組織和管理複雜專案,提高程式碼的重用性和可維護性。
(2)構建自動化:Maven提供了一套標準的構建生命週期和外掛機制,可以自動完成專案的編譯,測試,打包,部署等常見任務。透過配置 Maven 外掛,可以輕鬆地執行各種構建和部署操作,避免了手動執行復雜的命令或指令碼。
(3)依賴管理:Maven 使用一箇中央倉庫和標準的依賴描述檔案(POM)來管理專案的依賴關係。它能夠自動下載、安裝和更新專案的依賴項,簡化了專案的管理和構建過程。這樣可以減少手動維護依賴的工作,同時確保專案使用的依賴版本一致且可追蹤。
(4)專案結構標準化:Maven 強制約定一種標準的專案結構,將原始碼、資原始檔、配置檔案等按照約定的目錄結構組織起來。這種標準化的專案結構使得專案更易於維護、構建和部署,並且可以減少團隊成員之間的學習成本。
2.Maven的座標
什麼是座標?:Maven座標是資源的唯一標識,透過該座標可以唯一定位資源位置。使用座標定義專案或引入專案中需要的依賴
Maven座標的組成(三個部分):
- groupld:定義當前Maven專案組織名稱(通常域名反寫)
- artifactld:定義當前Maven專案名稱(通常是模組名稱,例如order-server)
- version:定義當前專案版本號
二.Maven的安裝
三.IDEA編譯器配置Maven環境
1.在IDEA的單個工程中配置Maven環境
只在一個專案工程中使用maven,則按以下步驟配置
1.建立一個空專案(new project)
2.設定專案關聯的JDK(建議使用JDK11版本,為企業主流版本)
3.配置Maven,本地倉庫會自動載入
4.指定maven的settings配置檔案位置
5.選擇JRE版本
6.指定當前專案的位元組碼版本
點選Apply,ok選項完成配置
2.方式2:配置Maven全域性引數
需要在任何專案工程中使用maven,則按以下步驟配置
1.File-close project
2.開啟配置頁面
3.配置Maven,本地倉庫會自動載入
4.指定maven的settings配置檔案位置
5.選擇JRE版本
6.指定當前專案的位元組碼版本
點選Apply,ok選項完成配置
四.IDEA編譯器建立Maven專案
1.File-new-moudle
2.建立Maven專案
3.輸入Maven專案的資訊
之後等待IDEA中將Maven的依賴下載完成,持續時間大概2分鐘左右
五.IDEA中的Maven專案結構
當使用者建立程式碼並編譯允許後,會出現一個target資料夾,用來存放位元組碼檔案:
六.IDEA編譯器匯入Maven專案
1.選擇右側的Maven選單欄上的“+“號
2.選擇Maven專案src資料夾下的pom.xml檔案即可匯入
七.Maven的依賴管理
依賴是什麼?:指當前專案執行所需要的jar包,一個專案中可以引入多個依賴。即專案所依賴的外部庫、框架或模組,它們是專案開發過程中需要用到的程式碼資源,透過引入這些依賴,可以獲得所需的功能和特性。
Maven的依賴具有傳遞性:當被依賴的資源依賴其他資源時,當前專案會自動引入它所依賴的資源,即會間接依賴
1.依賴配置
maven的依賴配置透過在pox.xml檔案中修改程式碼進行配置,配置步驟:
- 在pom.xml中編寫
標籤 - 在
標籤中使用 引入座標(maven要配置的資訊) - 定義座標的groupld,artifactld,version
- 點選重新整理按鈕,引入最新加入的座標
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
注意依賴配置程式碼要寫在結束標籤的前面
如果你輸入的依賴無法找到,即在你寫入依賴配置程式碼後編譯器報錯無法找到你配置的依賴,選擇重新整理maven會自動下載依賴
當右側的Maven選單欄出現以下資訊則表示maven依賴配置成功:
2.如何查詢依賴的座標資訊?
如果IDEA編譯器沒有軟體提示你依賴的資訊,並且你不知道依賴的座標資訊,可以到https://mvnrepository.com網站中搜尋,可以直接複製配置該依賴所需要的程式碼
1.搜尋需要的依賴
2.點選搜尋到的依賴,進入頁面檢視資訊
3.點選想要使用依賴的版本號
4.劃到頁面底部位置,複製該依賴程式碼到pom.xml中
2.如何排除依賴
由於Maven依賴具有傳遞性,當被依賴的資源依賴其他資源時,當前專案會自動引入它所依賴的資源,即會間接依賴。如果不需要依賴資源所依賴的其他資源,可以透過在pom.xml檔案編寫exclusion程式碼排除不想要的依賴
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId> //想要排除的依賴,被排除依賴無需指定版本
<artifactId>logback-classic</artifactId>
<exclusion>
</exclusions>
</dependency>
</dependencies>
注意:exclusions程式碼塊要寫在dependency程式碼塊內,且被排除的依賴無需指定版本號version
3.依賴範圍設定
依賴的jar包預設情況下可以在任何地方使用,但使用者可以透過在pom.xml檔案中編寫scope程式碼設定其作用範圍
依賴的作用範圍有3種:
- 主程式範圍有效(main資料夾範圍內)
- 測試程式範圍有效(test資料夾範圍內)
- 是否參與打包執行(package指令範圍內)
scope的值有4種:
- compile(預設):任何位置使用依賴
- test:只在測試程式範圍內使用依賴
- provided:只在主程式和測試範圍內使用依賴
- runtime:只在測試程式和打包執行時使用依賴
程式碼示範
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<scope>test</scope> //依賴範圍新增
</dependency>
</dependencies>
八.Maven的生命週期
什麼是Maven的生命週期?:Maven的生命週期就是為了對所有的maven專案構建過程進行抽象和統一,簡單來說就是maven所執行的各個功能步驟
Maven的生命週期的過程主要有以下幾點:
清理clean:將以前編譯得到的舊檔案class位元組碼檔案刪除
編譯compile:將java源程式編譯成class位元組碼檔案
測試test:自動測試,自動呼叫junit程式
報告report:測試程式執行的結果
打包package:動態Web工程打War包,java工程打jar包
安裝install:Maven特定的概念-----將打包得到的檔案複製到“倉庫”中的指定位置
部署deploy:將動態Web工程生成的war包複製到Servlet容器下,使其可以執行
在Maven選單欄的Lifecycle下可以看到生命週期的各個過程
如何執行生命週期的階段?
方式一:直接雙擊Maven選單欄中生命週期的步驟
方式二:透過cmd命令列中命令執行(注意要在maven專案的當前目錄下開啟cmd
mvn clean
mvn compile
mvn package
mvn test
mvn report
mvn package
mvn install
mvn deploy
一些相關內容的參考學習資源
參考影片:
黑馬程式設計師2023新版JavaWeb開發教程,實現javaweb企業開發全流程
【小飛非系列】最新Maven實戰教程-專案實戰構建利器