详细介绍:Maven入门_简介、安装与配置

详细介绍:Maven入门_简介、安装与配置

详细介绍:Maven入门_简介、安装与配置

@ZZHow(ZZhow1024)

参考课程:

尚硅谷新版Maven教程】

[https://www.bilibili.com/video/BV1JN411G7gX]

一、Maven简介

02_依赖管理工具

03_构建工具

  • 我们没有注意过的构建
    • 当我们使用 IDEA 进行开发时,构建是 IDEA 替我们做的
  • 脱离 IDE 环境仍需要构建

04_什么是Maven

Maven – Introduction

05_工作原理(了解)

Maven软件工作原理模型图

Maven 软件工作原理模型图

二、Maven的安装和环境配置

Maven – Download Apache Maven

三、Maven的功能配置

apache-maven-3.8.8\conf 中的 settings.xml

  1. 配置本地仓库地址

    <!-- 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>
  2. 配置国内阿里镜像(可选)

    <mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  3. 配置 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软件

IDEA配置本地Maven软件

五、概念梳理

09_Maven工程的GAVP

Maven 中的 GAVP(Groupld, Artifactld, Version and Packaging),其中前三个是必要的,而 Packaging 属性为可选项,这四个属性主要为每个项目在 maven 仓库中做一个标识。

  • GVA 遵循的规则:

    1. GroupID 格式:com.{公司/BU}.业务线.[子业务线],最多 4 级

      例:com.taobao.tddl

    2. ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下

      例:tc-client / uic-api / tair-tool / bookstore

    3. Version 版本号格式推荐:主版本号.次版本号.修订号

      1. 主版本号:当做了不兼容的API修改,或者增加了能改变产品方向的新功能
      2. 次版本号:当做了向下兼容的功能性新增(新增类、接口等)
      3. 修订号:修复bug,没有修改方法签名的功能加强,保持 API 兼容性

      例:初始 → 1.0.0 修改 bug → 1.0.1 功能调整 → 1.1.1 等

  • Packaging 定义规则:

    • 指示将项目打包为什么类型的文件,IDEA 根据 packaging 值,识别 maven 项目类型
      • 属性为 jar(默认值),代表普通的 Java 工程,打包以后是 jar 结尾的文件
      • 属性为 war,代表 Java 的 web 工程,打包以后 .war 结尾的文件
      • 属性为 pom,代表不会打包,用来做继承的父工程