MVN1️⃣简介 & 安装
1、简介
项目管理
- 开发中需要使用大量 jar 包,需要手动导入。
- 工程升级维护过程繁琐(如 jar 包升级)。
- 不同 jar 包可能存在兼容性问题。
- ...
1.1、Maven
Maven 是基于 Java 编写的项目管理工具
- 思想:约定大于配置。
- 作用:从项目的编译、测试、生成报告、打包和部署全阶段,自动化构建和管理项目。
- 统一开发结构:提供标准的、统一的项目结构。
- 项目构建:提供标准化的、跨平台的自动化构建方式。
- 依赖管理:方便快捷的管理项目依赖的资源(jar 包),避免资源间的冲突。
- 相关网站:
1.2、基本概念(❗❗)
1.2.1、POM
Project Object Model:项目对象模型
-
Maven 将对项目的开发和管理抽象成 POM,体现为 pom.xml 文件。
-
图中蓝色阴影属于 Maven 的范畴,其余不属于 Maven。
1.2.2、仓库
repository:用于存储资源(jar 包)
- 本地:计算机本地的仓库,需要从远程仓库下载资源。
- 远程:为本地仓库提供资源。
- 中央仓库:Maven 官方团队维护,存储所有开源资源。
- 私服:通常是公司/部门搭建,存储私有资源(👉 私服)
资源寻找过程
假设项目依赖资源 a,如下 Maven 操作
- 扫描本地仓库,无则从远程仓库下载到本地仓库。
- 导入资源 a 的 jar 包。
1.2.3、坐标
坐标:唯一标识资源在仓库中的位置
主要组成(GAV):
- groupId:隶属组织名称(通常是域名反写,如 org.apache)
- artifactId:项目名称(通常是模块名称,如 mybatis)
- version:项目版本号
2、安装
2.1、下载安装
2.1.1、官网下载
-
版本:
- 最新版:Files
- 历史版本:Previous Releases-archive
-
后缀:
zip tar.gz bin Windows 安装包 Linux 安装包 src Windows 源码 Linux 源码
2.1.2、目录介绍
Maven 解压即安装
- bin:核心二进制文件
- boot:Maven 的类加载器(Maven 基于 Java 编写)
- conf:配置文件
- lib:Maven 依赖的 jar 包
2.2、配置环境变量
-
配置:❗(右键此电脑 - 属性 - 高级系统设置 - 高级 - 环境变量 - 系统变量)
- 变量:
JAVA_HOME
:Java 根目录(Maven 启动时会读取该变量名)MAVEN_HOME
:Maven 根目录M2_HOME
:Maven 根目录下的 bin 目录
- Path 变量:新建变量值
%MAVEN_HOME%\bin
- 变量:
-
确认配置:命令行输入
mvn -version
。
2.3、配置仓库
2.3.1、本地仓库
-
默认地址:不建议。
${user.home}/.m2/repository # 示例 C:\Users\Jaywee\.m2\repository
-
自定义地址:本地创建一个文件夹作为仓库,在 settings.xml 中添加配置。
-
<localRepository>路径</localRepository>
-
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>
-