一、什么是 Maven?

Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建依赖管理支持的工具。

1、构建

Java 项目开发过程中,构建指的是使用『原材料生产产品』的过程。

  • 原材料

    • Java 源代码
    • JSP 文件
    • 图片
    • 配置文件
    • ……
  • 产品

    • 一个可以在服务器上运行的项目

构建过程包含的主要的环节:

  • 清理:删除上一次构建的结果,为下一次构建做好准备
  • 编译:Java 源程序编译成*.class 字节码文件
  • 测试:运行提前准备好的测试程序
  • 报告:针对刚才测试的结果生成一个全面的信息
  • 打包
    • Java 工程:jar 包
    • Web 工程:war 包
  • 安装:把一个 Maven 工程安装到 Maven 仓库
  • 部署:将准备好的 jar 包或 war 包部署到服务器上运行

2、依赖

如果 A 工程里面用到了 B 工程的类、接口、配置文件等等这样的资源,那么我们就可以说 A 依赖 B。例如:

  • commons-fileupload 包依赖 commons-io 包
  • spring-core 包 依赖 commons-logging 包

依赖管理中要解决的具体问题:

  • jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地
  • jar 包之间的依赖:通过依赖的传递性自动完成
  • jar 包之间的冲突:通过对依赖的配置进行调整,让某些 jar 包不会被导入

3、Maven 的工作机制

二、Maven 核心程序解压

Maven 官网下载核心程序压缩包 apache-maven-3.8.1-bin

解压到非中文、没有空格的目录。

在解压目录中,我们需要着重关注 Maven 的核心配置文件:conf/settings.xml

三、核心配置文件

1、指定本地仓库

本地仓库默认值:用户的家目录/.m2/repository。

这是 Maven 的核心配置文件:conf/settings.xml 中的内容

1
2
3
4
5
6
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->

建议将 Maven 的本地仓库放在其他盘符下。配置方式如下:

1
2
3
4
5
6
7
<!-- 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:\My\Maven-rep</localRepository>

本地仓库这个目录,我们手动创建一个空的目录即可。

注意:本地仓库本身也需要使用一个非中文、没有空格的目录。

2、配置阿里云提供的镜像仓库

Maven 下载 jar 包默认访问境外的中央仓库,速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让 Maven 下载 jar 包的时候速度更快。

配置的方式是:在 conf/settings.xml 中找到<mirrors>标签,将下面mirror 标签整体复制过去。

1
2
3
4
5
6
7
8
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>

3、配置 Maven 工程的基础 JDK 版本

如果按照默认配置运行,Java 工程使用的 JDK 版本是 1.5。

修改配置的方式是:将profile 标签整个复制到 profiles 标签内。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>

4、macOS 下的配置

macOS 下 Java8 和 Maven 的配置

四、配置环境变量

1、检查 JAVA_HOME 配置是否正确

Maven 是一个用 Java 语言开发的程序,它必须基于 JDK 来运行,需要通过 JAVA_HOME 来找到 JDK 的安装位置。

images

可以使用下面的命令验证:

1
2
echo %JAVA_HOME%
java -version
1
2
3
4
5
6
7
C:\Users\ShiGuang>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_202

C:\Users\ShiGuang>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

2、配置 MAVEN_HOME

images

配置环境变量的规律:

XXX_HOME 指向的是 bin 目录的上一级

PATH 指向的是 bin 目录

3、配置 PATH

在 path 变量下新增加

1
%MAVEN_HOME%\bin

images

4、验证

打开 cmd 输入

1
mvn -v
1
2
3
4
5
6
C:\Users\ShiGuang>mvn -v
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: D:\My\Maven\bin\..
Java version: 1.8.0_202, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_202\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"