Maven是专门用于管理和构建Java项目的工具,是 Apache 下的一个纯 Java 开发的开源项目,基于项目对象模型(POM)概念。先来学习一下Maven基础,等后面学完开发框架后再学Maven高级,这次的内容如下

一、概述

1、简介

Maven是专门用于管理和构建Java项目的工具,主要功能
1)提供了一套标准化的项目结构

2)提供了一套标准化的构建流程(编译,测试,打包,发布…….)

3)提供了一套依赖管理机制

依赖管理实质:管理项目所依赖的第三方资源(jar包、插件..)

1
2
3
4
5
6
7
8
传统方式
1.下载jar包
2.复制jar包到项目
3.将jar包加入工作环境

Maven管理(优点)
1.Maven使用标准的坐标配置来管理各种依赖
2.只需要简单的配置就可以完成依赖管理

二、Maven安装配置

1、下载Maven安装包并解压

1.1 下载Maven(以下方法二选一)

1)通过官网下载:https://maven.apache.org/download.cgi

2)为了方便,我这里提供了网盘
链接:https://pan.baidu.com/s/1yZgxWz29vNsx-dg4yZrQWw?pwd=w7xk
提取码:w7xk

1.2 解压并查看目录

下载完成后,找到压缩包,选择要解压的盘符(如我的是D盘),右键选择解压到当前文件夹即可。

注:最好解压到一个不含中文和空格的路径下

打开文件夹,目录结构及相关说明如下

2、配置Maven环境变量

1)找到环境变量并作如下配置
如我的是(右键此电脑->属性->高级系统设置->环境变量)

2)将MAVEN_HOME 添加到Path系统变量
在系统变量里找到 Path并选中,点击编辑->新建,添加如下

3)检测是否配置成功
win+R 打开命令提示符,输入mvn -v,出现如下则说明环境变量配置成功

3、配置本地仓库

由于Maven默认的远程仓库在国外, 导致下载jar包时速度非常慢, 推荐使用国内的阿里云仓库,可提高访问和下载速度。若不配置,则本地仓库默认的路径如下(我的是C:\Users\ASUS\.m2)

1)首先在maven目录下新建一个 mvn_resp作为本地仓库,并复制该目录路径(D:\apache-maven-3.6.3\mvn_resp)

2)修改conf/settings.xml中的<localRepository>为一个指定目录,如下

4、配置阿里云私服

修改conf/settings.xml中的标签,为其添加如下子标签,完成后ctrl+s保存退出

1
2
3
4
5
6
7
8
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>
http://maven.aliyun.com/nexus/content/groups/public/
</url>
<mirrorOf>central</mirrorOf>
</mirror>


完成上述步骤后,maven就安装配置完成,接下来就可以在IDEA中创建Maven项目了。

三、IDEA中创建Maven项目

1、IDEA配置Maven

创建Maven项目前需要先配置Maven。
1)IDEA中 选择File –> Settings –> 搜素maven,如下

2)修改默认配置配置,设置IDEA使用本地安装的Maven,并修改配置文件路径,如下

配置好后点击Apply应用,然后OK即可。

2、创建Maven项目

1)创建模块(File->New->Module),选择Maven,点击Next

2)填写模块名称,坐标信息,点击finish,创建完成

如这是我填写的

创建完成后的目录结构如下

注:目录下没有webapp,因为目前创建的是java项目而非web项目,等后面学到web核心时会讲

3)编写HelloWorld,并运行

四、IDEA导入Maven项目

一般企业的项目都是由团队合作共同开发的,所以一些时候可能需要我们导入其他成员写好的Maven项目到我们的工程里,步骤如下,非常简单。
1)选择右侧Maven面板,点击+号

2)选中对应项目的pom.xml文件,双击即可

注:如果没有Maven面板,选择 View → Appearance > Tool Window Bars

五、Maven基本使用

1、Maven坐标

1)Maven 中的坐标是资源的唯一标识
2)使用坐标来定义项目或引入项目中需要的依赖

2、Maven坐标主要组成

1
2
3
4
5
6
groupld
- 定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itweb)
artifactld
- 定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
version
- 定义当前项目版本号

3、Maven常用命令

Maven主要有以下常用命令,其功能即对应的英文意思,非常好理解,可以自己动手每一个命令都去试试。

1
2
3
4
5
compile 编译
clean 清理
test 测试
package 打包
install 安装

如下是装了Maven Helper插件后,能够非常方便地查看和运行命令。具体的插件安装流程不过多赘述。

六、Maven生命周期

Maven构建项目生命周期描述的是一次构建过程经历了多少个事件,对项目构建的生命周期划分为3套。
1)clean生命周期(清理工作)

clean:删除目标目录中的编译输出文件。

2)default生命周期(核心工作)

如编译compile,测试test,打包package,安装install等

3)site生命周期(产生报告,发布站点等)

site:生成项目文档和站点信息。

deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。

注:同一生命周期内,执行后边的命令,前边的所有命令会自动执行

七、依赖管理 & 依赖范围

1、使用坐标导入jar包

步骤如下,IDEA非常智能,输入半边就会识别补全。
1)在pom.xml中编写标签
2)在标签中使用引入坐标
3)定义坐标的groupId,artifactId,version
4)点击刷新按钮,使坐标生效。

2、快捷键方式

在pom.xml中按alt + insert,选择Dependency,在弹出的面板中搜索对应坐标,然后双击选中对应坐标,点击刷新按钮,使坐标生效。

此种方式通过IDEA提供的模版,非常方便快捷,实现高效开发。

3、自动导入

每次坐标添加完成后,可以手动刷新使坐标生效。当然,还可以配置自动导入,即添加完成后不用手动刷新就能生效。步骤如下
1)选择IDEA中 File –> Settings
2)在弹出的面板中找到Build Tools
3)选择Any changes,点击ok 即可生效。

4、依赖范围(了解)

通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围,如

1
2
3
编译环境(Maven项目下对应的java目录)
测试环境(Maven项目下对应的test目录)
运行环境(导入jar包后运行时有效)

注:scope默认值为compile