@ZZHow(ZZhow1024)
參考課程:
【尚硅谷新版Maven教程】
[https://www.bilibili.com/video/BV1JN411G7gX]
一、Maven簡介
02_依賴管理工具
- 解決 jar 包的規模問題
- 解決 jar 包的來源問題
- 解決 jar 包的導入問題
- 解決 jar 包之間的依賴
03_構建工具
- 我們沒有注意過的構建
- 當我們使用 IDEA 進行開發時,構建是 IDEA 替我們做的
- 脫離 IDE 環境仍需要構建
04_什么是Maven
Maven – Introduction
- Maven 是一款為 Java 項目管理構建、依賴管理的工具(軟件),使用 Maven 可以自動化構建、測試、打包和發布項目,大大提高了開發效率和質量
- Maven 就是一個軟件,掌握安裝、配置、以及基本功能(項目構建、依賴管理)的理解和使用即可
-
依賴管理
Maven 可以管理項目的依賴,包括自動下載所需依賴庫、自動下載依賴需要的依賴并且保證版本沒有沖突、依賴版本管理等
-
構建管理
Maven 可以管理項目的編譯、測試、打包、部署等構建過程
-
05_工作原理(了解)
Maven 軟件工作原理模型圖
二、Maven的安裝和環境配置
Maven – Download Apache Maven
- 安裝條件:Maven 需要本機安裝 Java 環境,必須包含 java_home 環境變量
- 軟件安裝:無需安裝,直接解壓即可
- 軟件結構:
- bin:含有 Maven 的運行版本
- boot:有 plexus-classworlds 類加載器框架
- **conf:**含有 Maven 的核心配置文件
- lib:含有 Maven 運行時所需要的 Java 類庫
- LICENSE、NOTICE、README.txt:針對 Maven 版本,第三方軟件等簡要介紹
- 環境配置
-
配置 MAVEN_HOME:家目錄(bin 的上一級)
-
配置 Path:bin 目錄
-
命令測試
命令行中測試是否能正常輸出 Maven 的版本
mvn -v
Maven版本
-
三、Maven的功能配置
apache-maven-3.8.8\conf 中的 settings.xml
-
配置本地倉庫地址
<!-- localRepository| The path to the local repository maven will use to store artifacts.|| Default: ${user.home}/.m2/repository<localRepository>/path/to/local/repo</localRepository>--><localRepository>D:\Repository\maven-repository</localRepository>
-
配置國內阿里鏡像(可選)
<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>
-
配置 JDK 版本
<profile><id>jdk-21</id><activation><jdk>21</jdk></activation><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><maven.compiler.compilerVersion>21</maven.compiler.compilerVersion></properties></profile>
四、IDEA配置本地Maven軟件
IDEA配置本地Maven軟件
五、概念梳理
09_Maven工程的GAVP
Maven 中的 GAVP(Groupld, Artifactld, Version and Packaging),其中前三個是必要的,而 Packaging 屬性為可選項,這四個屬性主要為每個項目在 maven 倉庫中做一個標識。
-
GVA 遵循的規則:
-
GroupID 格式:com.{公司/BU}.業務線.[子業務線],最多 4 級
例:com.taobao.tddl
-
ArtifactID 格式:產品線名-模塊名。語義不重復不遺漏,先到倉庫中心去查證一下
例:tc-client / uic-api / tair-tool / bookstore
-
Version 版本號格式推薦:主版本號.次版本號.修訂號
- 主版本號:當做了不兼容的API修改,或者增加了能改變產品方向的新功能
- 次版本號:當做了向下兼容的功能性新增(新增類、接口等)
- 修訂號:修復bug,沒有修改方法簽名的功能加強,保持 API 兼容性
例:初始 → 1.0.0 修改 bug → 1.0.1 功能調整 → 1.1.1 等
-
-
Packaging 定義規則:
- 指示將項目打包為什么類型的文件,IDEA 根據 packaging 值,識別 maven 項目類型
- 屬性為 jar(默認值),代表普通的 Java 工程,打包以后是 jar 結尾的文件
- 屬性為 war,代表 Java 的 web 工程,打包以后 .war 結尾的文件
- 屬性為 pom,代表不會打包,用來做繼承的父工程
- 指示將項目打包為什么類型的文件,IDEA 根據 packaging 值,識別 maven 項目類型