• 【Maven】Maven快速入门2022版:从概念、安装到基本使用


    请添加图片描述



    一、 简介


    1. Maven优点

    • 第一,提供了一套标准化的项目结构。使用 Maven 构建出来的项目目录结构都是相同的,这样做最大的好处是不同的 IDE 创建的 Maven 项目都可以通用。如下图所示:

      image-20221203162052191

    • 第二,提供了一套标准化的构建流程。即编译 --> 测试 --> 打包 --> 发布……。

      image-20221203163254739

    • 第三,提供了一套依赖管理机制。这是我个人认为 Maven 最灵魂和核心的功能,只需要在 pom.xml 文件中书写依赖的坐标,无需其他操作就能让 Maven 帮你管理众多依赖。

      image-20221203163556317


    2. 强大的依赖管理


    • 当程序员在 pom.xml 文件中输入依赖的 Maven 坐标后,Maven 会先去本地的 Maven 仓库中查询是否已经存在该依赖的 jar 包:

      • 如果存在,则直接导入;
      • 如果不存在,则会自动前往网络上的远程 Maven 仓库搜索并下载该依赖到本地 Maven 仓库,再导入到项目中。

      image-20221203165402655

    【小贴士】

    • 由于 Maven 官方的中央仓库服务器架设在国外,在国内访问速度会很慢。在实际企业开发中,我们通常会使用国内的远程仓库 (私服) ,例如阿里云等。以提高依赖的下载速度。

    3. 工作原理


    3.1 POM

    • Maven 是基于项目对象模型 (Project Object Model, POM) 的概念,通过一小段描述信息 (Maven 坐标) 来管理项目的构建、报告和文档。

    3.2 Maven模型

    image-20221203164503909


    二、 安装配置


    1. Maven核心程序解压与配置


    1.1 解压


    1.2 指定本地仓库

    • 打开 conf\settings.xml 配置文件,本地仓库默认在 C 盘,不好,改到 E 盘。一般我的个人习惯是把本地仓库目录放在 Maven 的安装目录下。

      
      <localRepository>E:\maven\maven-repolocalRepository>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

    1.3 配置阿里云提供的镜像仓库

    • 将配置原有的注释掉即可。

    • 解决外网下载速度慢的问题:

      <mirrors>
          
          <mirror>
              <id>nexus-aliyunid>
              <mirrorOf>centralmirrorOf>
              <name>Nexus aliyunname>
              <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
          mirror>
      mirrors>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

    1.4 配置Maven工程的基础JDK版本

    • 默认是 JDK 1.5 ,改成 JDK 1.8 。

      <profile>
          <id>jdk-1.8id>
          <activation>
              <activeByDefault>trueactiveByDefault>
              <jdk>1.8jdk>
          activation>
          <properties>
              <maven.compiler.source>1.8maven.compiler.source>
              <maven.compiler.target>1.8maven.compiler.target>
              <maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
          properties>
      profile>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12

    2. 配置环境变量


    2.1 检查 JAVA_HOME

    • JAVA_HOME 变量,到 bin 目录的上一级:

      image-20220922113337390

    • 调出 Windows 控制台,输入以下:

      C:\Users\92490>echo %JAVA_HOME%
      C:\Program Files\Java\jdk1.8.0_321
      
      • 1
      • 2
    • PATH 变量,到 bin 目录:

      image-20220922113829309

    • 调出 Windows 控制台,输入以下:

      C:\Users\92490>java -version
      java version "1.8.0_321"
      Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
      Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
      
      • 1
      • 2
      • 3
      • 4

    2.2 配置MAVEN_HOME

    • MAVEN_HOME 变量,到 bin 目录的上一级:

      image-20220922114525414

    • PATH 变量,到 bin 目录:

      image-20220922114619960

    • 验证:调出 Windows 控制台,输入以下:

      C:\Users\92490>mvn -v
      Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
      Maven home: E:\Program Files\Maven
      Java version: 1.8.0_321, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_321\jre
      Default locale: zh_CN, platform encoding: GBK
      OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

    三、 Maven使用:命令行


    3.1 要求

    • 运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的错误信息:

      The goal you specified requires a project to execute but there is no POM in this directory
      
      • 1

    3.2 清理操作

    mvn clean
    
    • 1

    删除 target 目录。


    3.3 编译操作

    命令作用
    mvn compile主程序编译
    mvn test-compile测试程序编译
    target/classes主题程序编译结果存放的目录
    target/test-classes测试程序编译结果存放的目录

    3.4 测试操作

    mvn test
    
    • 1

    测试的报告存放目录:target/surefire-reports


    3.5 打包操作

    mvn package
    
    • 1
    • 把编译好的字节码文件打包成 jar / war 包,存放目录:target/

    3.6 安装操作

    mvn install
    
    • 1
    • 将本地构建的 jar 包存入 Maven 本地仓库,还会将 pom.xml 文件转换为 XXX.pom 一起存入本地仓库,两者本质上是同一个文件。这个本地仓库就是在 \conf\settings.xml 文件指定的本地仓库。

    3.7 Maven生命周期

    • Maven 对项目构建的生命周期划分为 3 套:
      • clean:清理工作;
      • default:核心工作;如编译、测试、打包、安装……
      • site:产生报告、发布站点等 (不常用) ;
    • 同一生命周期内,执行后边的命令,前面所有的命令都会自动执行。

    image-20221203171315520

    • 举例,当执行 mvn package 时,会自动把 mvn compilemvn test 也执行了,最后才执行 mvn package 。因此,当你打包时如果不想执行 mvn test 造成数据库污染时,必须跳过测试步骤。

    四、 IDEA配置Maven


    1. IDEA配置Maven环境

    • IDEA 默认是配置了一个 Maven 环境。但我们更喜欢使用自己安装的 Maven 环境。下图是 IDEA 默认配置的 Maven 环境。image-20221203173046629

    • 修改 Maven 的 home 目录为自己安装的 Maven 目录。在 Maven home path 处修改:

      image-20221203173425791

    • 修改 Maven 配置文件路径。在 User settings file 处,先勾选【Override】,再去修改为自己的 Maven 配置文件路径:

      image-20221203173716054

    • 选择好 Maven 配置文件后,本地仓库的路径也自动帮我们修改好了。红框里的本地仓库目录就是我在 Maven 配置文件 settings.xml 中配置的本地仓库路径。

      image-20221203173918320

    • 上面所有完成后,点击【OK】,IDEA 中的 Maven 环境就配置好了。


    2. Maven坐标详解


    2.1 什么是坐标

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

    2.2 Maven坐标三要素

    • Maven 识别 jar 包使用三个要素唯一识别:
      • groupId:公司或组织域名的倒序,通常也会加上项目名
      • artifactId:一个项目中的 Module
      • version:版本号

    3. IDEA创建Maven项目

    • 新建项目,选择 New Project ,填写项目名称、存放路径、【Build system】选择 Maven 、填写坐标信息,点击【Create】,创建完成。

      image-20221203191236156

    • test 目录下新建文件夹,IDEA 会自动提示补全 resource 文件夹:

      image-20221203191811866

      image-20221203191833776

    • 这样,一个完整的 Maven 项目目录就创建出来了:

      image-20221203192011076


    4. IDEA导入Maven项目

    • 选择右侧 Maven 面板,点击【+】号:

      image-20221203192626821

    • 选中对于项目的 pom.xml 文件,双击即可导入 Maven 项目 (以一个模块 Module 的形式导入到当前项目) 。


    5. 依赖管理


    5.1 导入依赖的步骤

    1. pom.xml 中编写 标签;
    2. dependencies 标签中使用 引入坐标;
    3. 定义坐标的
    4. 点击刷新按钮,使坐标生效。

    image-20221203181658422


    5.2 获取其他依赖的坐标

    • 推荐在这个网站去搜索,选择一个下载量大的版本,复制其 Maven 坐标即可。
    • Maven 坐标网站:https://mvnrepository.com/

    5.3 自动生效

    • 由于每次修改完 Maven 的 pom.xml 文件都需要手动点击刷新才生效,太麻烦。我们可以通过下面 IDEA 的设置,当修改完 pom.xml 文件就自动刷新生效。

      image-20221203183006667


    5.4 快捷添加依赖

    • 有一些已经在本地仓库的依赖,我们可以不用在 pom.xml 文件中一个一个字手敲。而是可以在 pom.xml 文件的界面,按下快捷键 Alt + Insert ,选择 Add Dependency… 。

      image-20221203184252994

    • 可以搜索、选择版本和添加。

      image-20221203184627415

  • 相关阅读:
    springboot:java操作docker(docker-java)的基本使用
    VictoriaLogs:一款超低占用的 ElasticSearch 替代方案
    【leetcode】二分刷题=>704、35
    CSDN学院 < 华为战略方法论进阶课 > 正式上线!
    Java线程池
    外包干了20天,技术退步明显......
    RabbitMQ基础
    jenkins2.289.1版本远程命令执行漏洞
    spring security 会话管理
    Hadoop3:HDFS-查看logs文件,排查NameNode故障原因。
  • 原文地址:https://blog.csdn.net/Sihang_Xie/article/details/128164289