一、Maven 基本概念
Maven 是 Apache 下的一个纯 java 开发的开源项目,它是项目管理工具 ,可以使用 Maven 对 java 项目进行项目构建、依赖管理。
Maven 官网:https://maven.apache.org/
1.1 项目构建
项目构建是一个项目从编写源代码到编译、测试、打包、部署、运行的过程。Maven 将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段,后面章节详细介绍每个阶段,这里先大概了解下:

上图中部分阶段对应命令如下:
- 清理阶段对应的 Maven 命令是 clean,清理输出的 class 文件;
- 编译阶段对应的 Maven 命令是 compile,将 Java 代码编译成 class 文件;
- 打包阶段对应的 Maven 命令是 package,Java 工程可以打成 jar 包,web 工程可以打成 war 包;
- 运行一个 Maven 工程(web 工程)需要一个命令:tomcat:run。
Maven 工程构建的优点:
- 一个命令完成构建、运行,方便快捷;
- Maven 对每个构建阶段进行规范,非常有利于大型团队协作开发。
1.2 依赖管理
一个 java 项目可能要使用一些第三方的 jar 包才可以运行,那么我们说这个 java 项目依赖了这些第三方的 jar 包。
什么是依赖管理?
- 就是对项目所有依赖的 jar 包进行规范化管理。
Maven 项目管理所依赖的 jar 包不需要手动向工程添加 jar 包,只需要在 pom.xml(Maven 工程的配置文件)添加 jar 包的坐标,自动从 Maven 仓库中下载 jar 包、运行,如下图:

使用 Maven 依赖管理添加 jar 的好处:
- 通过 pom.xml 文件对 jar 包的版本进行统一管理,可避免版本冲突;
- Maven 团队维护了一个非常全的 Maven 仓库,里边包括了当前使用的 jar 包,Maven 工程可以自动从 Maven 仓库下载 jar 包,非常方便;
- jar 包之间的依赖:通过依赖的传递性自动完成;
二、Maven 安装与配置
2.1 JDK 安装与配置
Maven 的安装必须基于 JAVA_HOME 配置的环境变量。
系统变量:
- 变量名:JAVA_HOME
- 变量值:JDK 安装根路径
Path 路径引入:
- %JAVA_HOME%\bin
注:Maven3.6 + 版本,jdk 至少是 1.8 及以上版本。
2.2 Maven 安装与配置
Maven 下载
Maven 的官网下载地址:https://maven.apache.org/download.cgi,可以下载最新版本。

配置
1.首先找到自己解压好的的maven文件

2.点击maven中的bin文档并复制目录

3.打开编译系统环境,打开环境变量


4.找到系统变量的中path

5.点击新建复制路径

6.打开cmd输入mvn -version,能显示就说名成功

三、Maven 约定的目录结构
- Java 项目与 javaWeb 项目中 src 即源码目录。
- Maven 项目的源码目录有四个,分别为:
- src/main/java:存放项目的源码(.java)文件。
- src/main/resources:存放项目配置资源文件和资源文件,如 Spring、Mybatis 配置文件,db.properties 数据库资源文件。
- src/test/java:存放测试代码,如 junit 测试类。
- src/test/resources:存放测试中使用的配置文件。
- src/main/webapp:Maven Web 项目的目录。
- target:项目输出位置,编译后的 class 文件会输出到此目录。
- pom.xml:当前项目的配置管理、依赖管理、插件管理。
结构如下:

约定目录结构的意义:
- Maven 为了让构建过程能够尽可能自动化完成,所以必须约定目录结构的作用。例如:Maven 执行编译操作,必须先去 Java 源程序目录读取 Java 源代码,然后执行编译,最后把编译结果存放在 target 目录。
四、Maven 仓库和坐标
Maven 仓库分类:
- 本地仓库:本地主机上的仓库。
- 远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。
Maven 的工作需要从仓库下载一些 jar 包,如下图所示,本地的 Maven 项目都会通过 Maven 软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存放到本地仓库,本地仓库就是本地文件夹,当第二次需要此 jar 包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。
下图描述了 maven 中仓库的类型:

五.maven项目构建
新建maven项目


确认之后就可以等待maven依赖加载
如果有下载的maven:

5.1 maven的多模块项目的管理


除了controller需要:如图特殊创建剩下的都是正常创建

controller中导入service依赖,在service中导入dao依赖,在dao中导入pojo依赖,这样就可以进行多模块管理。
