MVN1️⃣简介 & 安装

1、简介

项目管理

  • 开发中需要使用大量 jar 包,需要手动导入
  • 工程升级维护过程繁琐(如 jar 包升级)。
  • 不同 jar 包可能存在兼容性问题。
  • ...

1.1、Maven

Maven 是基于 Java 编写的项目管理工具

image

  • 思想约定大于配置
  • 作用:从项目的编译、测试、生成报告、打包和部署全阶段,自动化构建和管理项目。
    1. 统一开发结构:提供标准的、统一的项目结构。
    2. 项目构建:提供标准化的、跨平台的自动化构建方式。
    3. 依赖管理:方便快捷的管理项目依赖的资源(jar 包),避免资源间的冲突。
  • 相关网站

1.2、基本概念(❗❗)

1.2.1、POM

Project Object Model:项目对象模型

  • Maven 将对项目的开发和管理抽象成 POM,体现为 pom.xml 文件。

  • 图中蓝色阴影属于 Maven 的范畴,其余不属于 Maven。

    image.png

1.2.2、仓库

repository:用于存储资源(jar 包)

  • 本地:计算机本地的仓库,需要从远程仓库下载资源。
  • 远程:为本地仓库提供资源。
    • 中央仓库:Maven 官方团队维护,存储所有开源资源。
    • 私服:通常是公司/部门搭建,存储私有资源(👉 私服

资源寻找过程

假设项目依赖资源 a,如下 Maven 操作

  1. 扫描本地仓库,无则从远程仓库下载到本地仓库。
  2. 导入资源 a 的 jar 包。

1.2.3、坐标

坐标:唯一标识资源在仓库中的位置

主要组成(GAV):

  • groupId:隶属组织名称(通常是域名反写,如 org.apache)
  • artifactId:项目名称(通常是模块名称,如 mybatis)
  • version:项目版本号

2、安装

2.1、下载安装

2.1.1、官网下载

  1. 版本

    • 最新版:Files
    • 历史版本:Previous Releases-archive
  2. 后缀

    zip tar.gz
    bin Windows 安装包 Linux 安装包
    src Windows 源码 Linux 源码
    image-20210722145011116

2.1.2、目录介绍

Maven 解压即安装

  • bin:核心二进制文件
  • boot:Maven 的类加载器(Maven 基于 Java 编写)
  • conf:配置文件
  • lib:Maven 依赖的 jar 包

2.2、配置环境变量

  1. 配置:❗(右键此电脑 - 属性 - 高级系统设置 - 高级 - 环境变量 - 系统变量

    • 变量
      • JAVA_HOME:Java 根目录(Maven 启动时会读取该变量名
      • MAVEN_HOME:Maven 根目录
      • M2_HOME:Maven 根目录下的 bin 目录
    • Path 变量:新建变量值 %MAVEN_HOME%\bin
  2. 确认配置:命令行输入 mvn -version

    image-20210722151857458

2.3、配置仓库

2.3.1、本地仓库

  • 默认地址:不建议。

    ${user.home}/.m2/repository
    # 示例 C:\Users\Jaywee\.m2\repository
    
  • 自定义地址:本地创建一个文件夹作为仓库,在 settings.xml 中添加配置。

    • <localRepository>路径</localRepository>
      
    • image-20210722165033477

2.3.2、远程仓库(❗)

  • 中央仓库

    • 如下所示,Maven 默认配置的远程仓库位于国外,国内访问速度慢。

    • 因此,需要配置镜像仓库来提高下载速度。

      <repositories> 
          <repository>
              <id>central</id>
              <name>Central Repository</name> 
              <url>https://repo.maven.apache.org/maven2</url>
              <layout>default</layout>
              <snapshots>
                  <enabled>false</enabled> 
              </snapshots>
          </repository> 
      </repositories>
      
  • 镜像配置(❗):推荐 阿里云镜像

    • id:镜像唯一标识(任意,不重复)。

    • mirrorOf:被镜像的仓库(* 代表所有)。

    • name:镜像名称(任意,可省略)

    • url:镜像地址(必须有效)。

      <!-- 访问任意仓库时,自动转为对此镜像 URL 的访问。 -->
      <mirror>
          <id>aliyunmaven</id>
          <mirrorOf>*</mirrorOf>
          <name>阿里云公共仓库</name>
          <url>https://maven.aliyun.com/repository/public</url>
      </mirror>
      
posted @ 2021-07-22 18:10  Jaywee  阅读(173)  评论(0编辑  收藏  举报

👇