本期目录
- 一、 简介
- 1. Maven优点
- 2. 强大的依赖管理
- 3. 工作原理
- 3.1 POM
- 3.2 Maven模型
- 二、 安装配置
- 1. Maven核心程序解压与配置
- 1.1 解压
- 1.2 指定本地仓库
- 1.3 配置阿里云提供的镜像仓库
- 1.4 配置Maven工程的基础JDK版本
- 2. 配置环境变量
- 2.1 检查 JAVA_HOME
- 2.2 配置MAVEN_HOME
- 三、 Maven使用:命令行
- 3.1 要求
- 3.2 清理操作
- 3.3 编译操作
- 3.4 测试操作
- 3.5 打包操作
- 3.6 安装操作
- 3.7 Maven生命周期
- 四、 IDEA配置Maven
- 1. IDEA配置Maven环境
- 2. Maven坐标详解
- 2.1 什么是坐标
- 2.2 Maven坐标三要素
- 3. IDEA创建Maven项目
- 4. IDEA导入Maven项目
- 5. 依赖管理
- 5.1 导入依赖的步骤
- 5.2 获取其他依赖的坐标
- 5.3 自动生效
- 5.4 快捷添加依赖
一、 简介
1. Maven优点
-
第一,提供了一套标准化的项目结构。使用 Maven 构建出来的项目目录结构都是相同的,这样做最大的好处是不同的 IDE 创建的 Maven 项目都可以通用。如下图所示:
-
第二,提供了一套标准化的构建流程。即编译 --> 测试 --> 打包 --> 发布……。
-
第三,提供了一套依赖管理机制。这是我个人认为 Maven 最灵魂和核心的功能,只需要在
pom.xml
文件中书写依赖的坐标,无需其他操作就能让 Maven 帮你管理众多依赖。
2. 强大的依赖管理
-
当程序员在
pom.xml
文件中输入依赖的 Maven 坐标后,Maven 会先去本地的 Maven 仓库中查询是否已经存在该依赖的 jar 包:- 如果存在,则直接导入;
- 如果不存在,则会自动前往网络上的远程 Maven 仓库搜索并下载该依赖到本地 Maven 仓库,再导入到项目中。
【小贴士】
- 由于 Maven 官方的中央仓库服务器架设在国外,在国内访问速度会很慢。在实际企业开发中,我们通常会使用国内的远程仓库 (私服) ,例如阿里云等。以提高依赖的下载速度。
3. 工作原理
3.1 POM
- Maven 是基于项目对象模型 (Project Object Model, POM) 的概念,通过一小段描述信息 (Maven 坐标) 来管理项目的构建、报告和文档。
3.2 Maven模型
二、 安装配置
1. Maven核心程序解压与配置
1.1 解压
-
官网:Maven – Welcome to Apache Maven
-
点击 Download :
-
Windows 系统下载:
-
解压:
-
重点关注
conf\settings.xml
配置文件。
1.2 指定本地仓库
-
打开
conf\settings.xml
配置文件,本地仓库默认在 C 盘,不好,改到 E 盘。一般我的个人习惯是把本地仓库目录放在 Maven 的安装目录下。<!-- 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>E:\maven\maven-repo</localRepository>
1.3 配置阿里云提供的镜像仓库
-
将配置原有的注释掉即可。
-
解决外网下载速度慢的问题:
<mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>
1.4 配置Maven工程的基础JDK版本
-
默认是 JDK 1.5 ,改成 JDK 1.8 。
<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>
2. 配置环境变量
2.1 检查 JAVA_HOME
-
JAVA_HOME 变量,到 bin 目录的上一级:
-
调出 Windows 控制台,输入以下:
C:\Users\92490>echo %JAVA_HOME% C:\Program Files\Java\jdk1.8.0_321
-
PATH 变量,到 bin 目录:
-
调出 Windows 控制台,输入以下:
C:\Users\92490>java -version java version "1.8.0_321" Java(TM) SE Runtime Environment (build 1.8.0_321-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
2.2 配置MAVEN_HOME
-
MAVEN_HOME 变量,到 bin 目录的上一级:
-
PATH 变量,到 bin 目录:
-
验证:调出 Windows 控制台,输入以下:
C:\Users\92490>mvn -v Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: E:\Program Files\Maven Java version: 1.8.0_321, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_321\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
三、 Maven使用:命令行
3.1 要求
-
运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的错误信息:
The goal you specified requires a project to execute but there is no POM in this directory
3.2 清理操作
mvn clean
删除 target 目录。
3.3 编译操作
命令 | 作用 |
---|---|
mvn compile | 主程序编译 |
mvn test-compile | 测试程序编译 |
target/classes | 主题程序编译结果存放的目录 |
target/test-classes | 测试程序编译结果存放的目录 |
3.4 测试操作
mvn test
测试的报告存放目录:target/surefire-reports
。
3.5 打包操作
mvn package
- 把编译好的字节码文件打包成 jar / war 包,存放目录:
target/
。
3.6 安装操作
mvn install
- 将本地构建的 jar 包存入 Maven 本地仓库,还会将
pom.xml
文件转换为XXX.pom
一起存入本地仓库,两者本质上是同一个文件。这个本地仓库就是在\conf\settings.xml
文件指定的本地仓库。
3.7 Maven生命周期
- Maven 对项目构建的生命周期划分为 3 套:
- clean:清理工作;
- default:核心工作;如编译、测试、打包、安装……
- site:产生报告、发布站点等 (不常用) ;
- 同一生命周期内,执行后边的命令,前面所有的命令都会自动执行。
- 举例,当执行
mvn package
时,会自动把mvn compile
和mvn test
也执行了,最后才执行mvn package
。因此,当你打包时如果不想执行mvn test
造成数据库污染时,必须跳过测试步骤。
四、 IDEA配置Maven
1. IDEA配置Maven环境
-
IDEA 默认是配置了一个 Maven 环境。但我们更喜欢使用自己安装的 Maven 环境。下图是 IDEA 默认配置的 Maven 环境。
-
修改 Maven 的 home 目录为自己安装的 Maven 目录。在
Maven home path
处修改: -
修改 Maven 配置文件路径。在
User settings file
处,先勾选【Override】,再去修改为自己的 Maven 配置文件路径: -
选择好 Maven 配置文件后,本地仓库的路径也自动帮我们修改好了。红框里的本地仓库目录就是我在 Maven 配置文件
settings.xml
中配置的本地仓库路径。 -
上面所有完成后,点击【OK】,IDEA 中的 Maven 环境就配置好了。
2. Maven坐标详解
2.1 什么是坐标
- Maven 中的坐标是资源的唯一标识;
- 使用坐标来定义项目或者引入项目中需要的依赖。
2.2 Maven坐标三要素
- Maven 识别 jar 包使用三个要素唯一识别:
- groupId:公司或组织域名的倒序,通常也会加上项目名
- artifactId:一个项目中的 Module
- version:版本号
3. IDEA创建Maven项目
-
新建项目,选择 New Project ,填写项目名称、存放路径、【Build system】选择 Maven 、填写坐标信息,点击【Create】,创建完成。
-
在
test
目录下新建文件夹,IDEA 会自动提示补全resource
文件夹: -
这样,一个完整的 Maven 项目目录就创建出来了:
4. IDEA导入Maven项目
-
选择右侧 Maven 面板,点击【+】号:
-
选中对于项目的
pom.xml
文件,双击即可导入 Maven 项目 (以一个模块 Module 的形式导入到当前项目) 。
5. 依赖管理
5.1 导入依赖的步骤
- 在
pom.xml
中编写<dependencies>
标签; - 在
dependencies
标签中使用<dependency>
引入坐标; - 定义坐标的
<groupId>
、<artifactId>
、<version>
; - 点击刷新按钮,使坐标生效。
5.2 获取其他依赖的坐标
- 推荐在这个网站去搜索,选择一个下载量大的版本,复制其 Maven 坐标即可。
- Maven 坐标网站:https://mvnrepository.com/
5.3 自动生效
-
由于每次修改完 Maven 的
pom.xml
文件都需要手动点击刷新才生效,太麻烦。我们可以通过下面 IDEA 的设置,当修改完pom.xml
文件就自动刷新生效。
5.4 快捷添加依赖
-
有一些已经在本地仓库的依赖,我们可以不用在
pom.xml
文件中一个一个字手敲。而是可以在pom.xml
文件的界面,按下快捷键 Alt + Insert ,选择 Add Dependency… 。 -
可以搜索、选择版本和添加。