一.Maven的介紹即相關概念 Maven是一款構建和管理Java項目的工具,它將項目開發和管理過程抽象成一個項目對象模型(POM),提供了一種統一的項目結構。 Maven官網 1.為什麼使用Maven/Maven的作用 (1)多模塊支持:當項目非常龐大的時候,就不適合使用package來劃分模塊, ...
一.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實戰教程-項目實戰構建利器