文章目录
1. Maven是什么
- Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
- POM( Project Object Model):项目对象模型
2. Maven的作用
- 项目构建 : 提供标准的、跨平台的自动化项目构建方式
- 依赖管理 : 方便快捷的管理项目依赖的资源ja咆包),避免资源间的版本冲突问题
统一开发结构:提供标准的、统一的项目结构
3. 下载与安装
3.1 Maven下载
官网 http://maven.apache.org/
下载地址 http://maven.apache.org/download.cgi
3.2 Maven安装
- Maven属于绿色版软件,解压即安装
3.2 Maven环境变量配置
- 依赖Java,需要配置 JAVA HOME设置
- MAVEN自身的运行环境
需要配置 MAVEN_HOME = D:\apache-maven-3.6.3-bin\apache-maven-3.6.3 (manen的文件地址)
需要添加配置 path = %MAVEN_HOME%\bin - 测试环境配置结果
在cmd下输入mvn启动Maven,出现提示则配置成功
4. Maven基本概念
4.1 仓库
- 仓库 : 用于存储资源,包含各种ar包
- 仓库分类
- 本地仓库 : 自己电脑上存储资源的仓库,连接远程仓库获取资源
- 远程仓库 : 非本机电脑上的仓库,为本地仓库提供资源
- 中央仓库 : Maven团队维护,存储所有资源的仓库
中央仓库中的ajr都是开源的,不能存储具有版权的资源 - 私服 : 部门/公司范围内存储资源的仓库,从中央仓库获取资源
私服的作用:
保存具有版权的资源,包含购买或自主研发的jar
一定范围内共享资源,仅对内部开放,不对外共享 - 中央仓库 : Maven团队维护,存储所有资源的仓库
4.2 坐标
- 什么是坐标?
Maven中的坐标用于描述仓库中资源的位置
https://repo1.mavenorg/maven2/Maven - 坐标主要组成
- grouped : 定义当前 Maven项目隶属组织名称(通常是域名反写,例如: org. mybatis)
- artifact : 定义当前 Maven项目名称(通常是模块名称,例如CRM、SMS)
- version : 定义当前项目版本号
- Maven坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
通过Maven网站获取坐标
Maven网站 :https://mvnrepository.com/
- 打开网站,搜索所需的jar包
- 在结果中点击自己所需jar包
- 选择版本
- 获取到坐标
4.3 本地仓库配置
- Maven启动后(mvn命令启动),会自动保存下载的资源到本地仓库
- 默认位置
<localRepository>${user.home}/.m2/repository</localRepository>
当前目录位置为登录用户名所在目录下的m2文件夹中(C:\Users\22714.m2\repository) - 自定义位置
<localRepository >D:\maven\repository</localRepository>
当前目录位置为D: maven\repository文件夹中
- 默认位置
自定义本地仓库位置设置
- 在Maven的安装目录下找到 conf\settings.xml
- 编辑settings.xml中localRepository指定目录
<localRepository>/path/to/local/repo</localRepository>
被注释时,则默认目录Default: ${user.home}/.m2/repository
- 取消localRepository的注释并修改为你所指定的目录(D:\Maven\repository)
4.4 远程仓库配置
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>
设置远程仓库(不修改默认中央仓库),采用镜像仓库配置(阿里云镜像仓库)
- 在 conf\settting.xml文件中配置阿里云镜像仓库
<mirrors> <!-- 配置具体的仓库的下载镜像 --> <mirror> <!-- 此镜像的唯一标识符,用来区分不同的mirror元素 --> <id>nexus-aliyun</id> <!--对哪种仓库进行鏡像,简单说就是替代哪个仓库 --> <mirrorOf>central</mirrorOf> <!-- 镜像名称 --> <name>Nexus aliyun</name> <!-- 镜像URL --> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>
4.6 全局setting与用户 setting区别
- 全局setting定义了当前计算器中 Maven的公共配置
- 用户setting定义了当前用户的配置