1.下载软件
下载地址:https://maven.apache.org/download.cgi
下载对应的版本后,解压到对应的位置
2.配置Maven环境变量
右击“计算机”-点击“属性”-点击“高级系统设置”-点击“环境变量”
新建系统变量:MAVEN_HOME,变量值为Maven的安装目录
编辑系统变量 Path,添加变量值:;%MAVEN_HOME%\bin
,
在命令提示符下执行 mvn -version
,输出结果如下图所示,证明 Maven 配置成功。
3.配置本地仓库
Maven 本地仓库默认地址为 C:\%USER_HOME%\.m2\repository ,但出于某些原因(例如 C 盘空间不够),我们通常会重新自定义本地仓库的位置。这时需要修改 %MAVEN_HOME%\conf 目录下的 settings.xml 文件,通过 localRepository 元素定义另一个本地仓库地址,例如:
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\mvnRepository\myRep</localRepository>
</settings>
当通过 Maven 构建项目时,Maven 按照如下顺序查找依赖的构件。
- 从本地仓库查找构件,如果没有找到,跳到第 2 步,否则继续执行其他处理。
- 从中央仓库查找构件,如果没有找到,并且已经设置其他远程仓库,然后移动到第 4 步;如果找到,那么将构件下载到本地仓库中使用。
- 如果没有设置其他远程仓库,Maven 则会停止处理并抛出错误。
- 在远程仓库查找构件,如果找到,则会下载到本地仓库并使用,否则 Maven 停止处理并抛出错误。
4.配置镜像
配置 Maven 镜像的方法也非常的简单,我们只需要在 Maven 安装目录中 setting.xml 文件的 mirrors 节点中,使用 mirror 标签添加镜像的相关信息即可。
目前国内使用最多,最稳定的中央仓库镜像分别是由阿里云和华为云提供的,它们的地址配置如下。
阿里云镜像地址:
<mirror> <id>aliyun</id> <mirrorOf>central</mirrorOf> <name>aliyun</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
华为云镜像地址
<mirror> <id>huaweicloud</id> <name>mirror from maven huaweicloud</name> <mirrorOf>central</mirrorOf> <url>https://repo.huaweicloud.com/repository/maven/</url> </mirror>
5.镜像配合Mave私服一起使用
像通常会和 Maven 私服配合使用,由于 Maven 私服可以代理所有外部的公共仓库(包括中央仓库),因此对于组织内部的用户来说,使用一个私服就相当于使用了所有需要的外部仓库,这样就可以将配置集中到私服中,简化 Maven 本身的配置。这种情况下,用户所有所需的构件都可以从私服中获取,此时私服就是所有仓库的镜像。
<srttings> ... <mirrors> <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <name>nexus</name> <url>http://localhost:8082/nexus/content/groups/bianchengbang_repository_group/</url> </mirror> </mirrors> ... </settings>
以上配置中,mirrorOf 元素的取值为 * ,表示匹配所有远程仓库,所有对于远程仓库的请求都会被拦截,并跳转到 url 元素指定的地址。
为了满足一些较为复杂的需求,Maven 还支持一些更为高级的配置。
- <mirrorOf>*</mirrorOf>:匹配所有远程仓库。
- <mirrorOf>external:*</mirrorOf>:匹配所有远程仓库,使用 localhost 和 file:// 协议的除外。即,匹配所有不在本机上的远程仓库。
- <mirrorOf>repo1,repo2</mirrorOf>:匹配仓库 repo1 和 repo2,使用逗号分隔多个远程仓库。
- <mirrorOf>*,!repo1</miiroOf>:匹配所有远程仓库,repo1 除外,使用感叹号将仓库从匹配中排除。
6.Maven 私服搭建
能够帮助我们建立私服的软件被称为 Maven 仓库管理器(Repository Manager),主要有以下 3 种:
- Apache Archiva
- JFrog Artifactory
- Sonatype Nexus
其中,Sonatype Nexus 是当前最流行,使用最广泛的 Maven 仓库管理器。