@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 项目类型