1 Maven簡介
2 Maven基礎概念
2.1 倉庫
2.2 坐標
3 依賴的相關知識點
4 生命周期與插件
5 使用Inteli idea完成第一個Maven項目
1 Maven簡介
????????Maven的本質就是一個項目管理工具,用于將項目開發和管理過程抽象成一個項目對象模型(project object model POM)
Maven的作用:
- 項目構建:提供標準的、跨平臺的自動化項目構建方式
- 依賴管理:方便便捷的管理項目以來的資源(jar包),避免資源之間的版本沖突問題
- 統一開發結構:提供了標準統一的項目結構,如下圖:
Maven的下載安裝與配置:只需五步學會Maven的下載安裝【圖文詳解】_扎哇太棗糕的博客-CSDN博客
2 Maven基礎概念
2.1 倉庫
? ? ? ? 倉庫用于存儲資源,主要是各種jar包
?從上圖可知,倉庫可被分為兩種:本地倉庫和遠程倉庫
- 本地倉庫:自己電腦上用于存儲資源的倉庫,可連接遠程倉庫來獲取資源
- 遠程倉庫:非本機上的倉庫,為本地倉庫提供資源
- 私服:一定范圍內存儲資源的倉庫,既可以從中央倉庫中獲取資源,也可以將各種途徑獲取到的不開源jar包存儲在私服里
- 中央倉庫:由Maven的官方團隊來維護,存儲所有的資源,且里面的資源都是開源的
2.2 坐標
坐標就是Maven中用于描述倉庫中資源的位置
Maven坐標的主要組成
- groupId:當前Maven項目隸屬組織的名稱,通常是域名的反寫(如org.mybatis)
- artifactId:當前maven項目名稱,通常是模塊名(如hadoop-client)
- version:項目版本號
- packing:定義項目的打包方式(jar或者war等)
如何使用坐標導入依賴:??????從Maven中央倉庫網站下載jar包的兩種方式,將會伴隨java后端開發者的整個職業生涯_扎哇太棗糕的博客-CSDN博客
3 依賴的相關知識點
依賴的配置:
依賴配置就是在pom.xml文件中導入相關依賴,借以定位到具體的jar包。所有的依賴全都在pom.xml文件下面的<dependencies>標簽進行管理,使用<dependency>對每個jar包進行定位, 一個項目可以設置多個依賴,使用多個<dependency>標簽進行定位。
依賴的傳遞:
依賴傳遞就是兩個模塊之間進行調用,被調用模塊的依賴會被傳遞給調用模塊,調用模塊的pom.xml文件里需把被調用模塊當成是一個依賴進行導入
依賴傳遞時的沖突問題:
當調用模塊的依賴版本與被調用模塊的版本發生沖突時,遵循以下原則:
- 路徑優先:不同模塊的不同層級,層級淺的依賴覆蓋層級深的
- 聲明優先:不同模塊的相同層級沖突,先配置的覆蓋后配置
- 后覆蓋前:同一個模塊內,后配置的覆蓋前面的
依賴傳遞時標簽里的設置:
隱藏依賴(被調用模塊的行為)
<optional>true</optional>
設置之后,調用模塊就看不見被調用模塊里面使用過這個依賴了?
排除依賴(?調用模塊的行為)
<exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion>
</exclusions>
?設置之后,調用模塊里將不再使用被調用模塊的這個依賴
4 生命周期與插件
生命周期就是一個完整的Maven項目需要經歷所有的階段,就像是生命一樣無法跳過一個階段去執行下一個階段,主要有以下三套生命周期:
?插件就是要與生命周期的某個階段相綁定,在執行到相應生命周期時會去實行相綁定的插件的功能。
?Maven官網中給出的所有插件:https://maven.apache.org/plugins/index.html
插件目錄結構(以打jar包插件為例)
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><goal>jar</goal></goals><phase>generate-test-resources</phase></execution></executions></plugin></plugins>
</build>
5 使用Inteli idea完成第一個Maven項目
參考博客:2021 使用IDEA創建并編寫你的第一個Maven項目【圖文詳解】_扎哇太棗糕的博客-CSDN博客