前言
Maven 是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
下载与安装
maven官网:http://maven.apache.org/download.html
maven的安装非常简单:
- 将下载的安装包解压到自己选定的目录下
- 配置环境变量:
- 此电脑-右键-属性-高级系统设置-环境变量,打开环境变量配置页面
- 在【系统变量】中新建,变量名:MAVEN_HOME,变量值:D:\application\work\apache-maven-3.6.3(即maven解压目录)
- 在【Path】中新建,写入:%MAVEN_HOME%\bin
- 打开cmd,输入:mvn -v,出现下图说明安装配置成功
以上,Maven 安装成功!
修改配置
maven安装后,目录结果如下:
这里重点有两个目录需要说明一下:
- conf:配置文件目录
- respository:仓库目录,这是自建目录,用来作为本地仓库存放jar包,而maven默认仓库地址是 C:\Users\用户名.m2
上面提到了maven中的respository目录,这是我们自建的仓库地址,接下来我们看一下怎么让maven下载的jar包存入这个目录。我们打开conf目录下的【settings.xml】文件,添加一行配置,如下图:
另外,为了提高jar包下载速度,我们使用阿里云的镜像:
<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
使用maven
创建maven项目后,项目中将有一个【pom.xml】文件,这个文件是我们管理项目依赖的关键。下面是一个最基础的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
<fastjson.version>1.2.47</fastjson.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
可以看到文件中有很多属性,下面简要概述一下这些属性都起到什么作用:
- modelVersion:指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0
- groupId:顾名思义,是公司名或是组织名。一般,groupId是由三个部分组成,每个部分之间以".“分隔,第一部分是项目用途,比如用于商业的就是"com”,用于非营利性组织的就是"org";第二部分是公司名,比如"baidu"、“alibaba”;第三部分是你的项目名
- artifactId:Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式
- version:版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。
- properties:定义的一些属性,比如jar包的版本,在后面可以直接引用这些属性,便于集中管理
- dependency:依赖的信息,例如上文中在【dependency】中描述了fastjson的信息,【dependency】包裹在【dependencies】标签中
在Maven中很重要的一点是,groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,例如:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
接下来,我们了解一下maven管理项目依赖的基本原理:
一个项目会有很多jar的依赖,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用。三者的关系如下:
补充一点,在IDEA中,每次新建项目后,会使用默认的本地仓库地址,要做一下设置:file–settings–Maven。