1. Maven简介

Maven是专门用于管理和构建Java项目的工具,官网http://maven.apache.org/ 。它的主要功能有:

1.1 :satisfied::smirk: 标准化的项目结构

每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。比如我再eclipse中创建的目录,无法在idea中进行使用,这就造成了很大的不方便。

Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目完全一样,所以IDE创建的Maven项目可以通用。 在这里插入图片描述

1.2 :ribbon::nail_care: 标准化的构建流程(编译,测试,打包,发布……)

在这里插入图片描述

如上图所示我们开发了一套系统,代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而Maven提供了一套简单的命令来完成项目构建。

1.3 :baby::dagger:方便的依赖管理机制

依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。比如你需要JDBC和Druid的话,就要去网上下载对应的依赖包,复制到项目中,还要将jar包加入工作环境这一系列的操作。如下图所示 在这里插入图片描述

而Maven使用标准的 ==坐标== 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理。

在这里插入图片描述

如上图右边所示就是mysql驱动包的坐标,在项目中只需要写这段配置,其他都不需要我们担心,Maven都帮我们进行操作了。是不是简单了不少??

2. 仓库

我们创建Maven项目,在项目中使用坐标来指定项目的依赖,那么依赖的jar包到底存储在什么地方呢?其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。

仓库分类:

  • 本地仓库:自己本地计算机上的一个目录

  • 中央仓库:由Maven团队维护的全球唯一的仓库。基本上你能想到的jar包,这里都有

    • 地址: https://repo1.maven.org/maven2/
  • 远程仓库(私服):一般由公司团队搭建的私有仓库

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

  • 如果有,则在项目直接引用;
  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。

在这里插入图片描述

当然如果搭建有远程仓库,则jar包的查找顺序则变为:

在这里插入图片描述

3. Maven安装配置

3.1 :innocent::cake:下载安装包

:sunny:官网下载:https://maven.apache.org/download.cgi

:snowflake:链接:https://pan.baidu.com/s/1vzSed4nyCXsjV3zCV9brtQ 提取码:0tiw

:turtle::cow2:解压 apache-maven-3.6.1.rar 既安装完成

在这里插入图片描述

建议解压缩到没有中文、特殊字符的路径下。记住你的目录

解压缩后的目录结构如下: 在这里插入图片描述

  • bin目录 : 存放的是可执行命令。mvn 命令重点关注。
  • conf目录 :存放Maven的配置文件。settings.xml 配置文件后期需要修改。
  • lib目录 :存放Maven依赖的jar包。Maven也是使用java开发的,所以它也依赖其他的jar包。

3.2 :alien::collision: 配置环境变量

在这里插入图片描述

此电脑 右键 --> 高级系统设置 --> 高级 --> 环境变量

在系统变量处新建一个变量 MAVEN_HOME 在这里插入图片描述

Path 中进行配置

在这里插入图片描述

打开cmd进行验证,出现如图所示表示安装成功: 在这里插入图片描述

3.3 :stuck_out_tongue_closed_eyes::open_mouth:配置本地仓库

修改 conf/settings.xml 中的 <localRepository> 为一个指定目录作为本地仓库,用来存储jar包。我的是:

image-20220814214518919

当然如果你不配置的话,会有一个默认本地仓库目录: 在这里插入图片描述

3.4 :joy: :facepunch:配置阿里云私服

中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。

修改 conf/settings.xml 中的 <mirrors>标签,为其添加如下子标签

<mirror>  
    <id>alimaven</id>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>          
</mirror>

image-20220814215322585

4. Maven常用命令

  • compile :编译

  • clean:清理

  • test:测试

  • package:打包

  • install:安装

这不是我要详细讲的,具体参考其他资料

5. IDEA使用Maven

以后开发中我们肯定会在高级开发工具中使用Maven管理项目,而我们常用的高级开发工具是IDEA,所以接下来我们会讲解Maven在IDEA中的使用。

5.1 :black_nib::straight_ruler: IDEA中配置Maven环境

我们需要先在IDEA中配置Maven环境:

  • 选择 IDEA中 File --> Settings

在这里插入图片描述

  • 搜索Maven

在这里插入图片描述

  • 设置 IDEA 使用本地安装的 Maven,并修改配置文件路径 在这里插入图片描述

5.2 :violin::briefcase:Maven 坐标

创建Maven项目要用到Maven坐标,所以先讲一下什么是Maven坐标。

什么是Maven坐标?

  • Maven 中的坐标是==资源的唯一标识==
  • 使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
  • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
  • version:定义当前项目版本号

如下图就是使用坐标表示一个项目:

image-20210726174718176

==注意:==

  • 上面所说的资源可以是插件、依赖、当前项目。
  • 我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。

5.3 :fries::hamburger:IDEA 创建 Maven项目

  • 新建模块

  • 在这里插入图片描述

  • 创建好的项目目录结构如下:

    image-20210726175244826

  • 编写 HelloWorld,并运行 在这里插入图片描述