Maven是专门用于管理和构建Java项目的工具,是 Apache 下的一个纯 Java 开发的开源项目,基于项目对象模型(POM)概念。先来学习一下Maven基础,等后面学完开发框架后再学Maven高级,这次的内容如下
一、概述
1、简介
Maven是专门用于管理和构建Java项目的工具,主要功能
1)提供了一套标准化的项目结构
2)提供了一套标准化的构建流程(编译,测试,打包,发布.......)
3)提供了一套依赖管理机制
依赖管理实质:管理项目所依赖的第三方资源(jar包、插件..)
传统方式 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中的<mirrors>标签,为其添加如下子标签,完成后ctrl+s保存退出
<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坐标主要组成
groupld
- 定义当前Maven项目隶属组织名称(通常是域名反写,例如: com.itweb)
artifactld - 定义当前Maven项目名称(通常是模块名称,例如order-service、goods-service)
version 定义当前项目版本号
3、Maven常用命令
Maven主要有以下常用命令,其功能即对应的英文意思,非常好理解,可以自己动手每一个命令都去试试。
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中编写<dependencies>标签
2)在<dependencies>标签中使用<dependency>引入坐标
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包的作用范围,如
编译环境(Maven项目下对应的java目录)
测试环境(Maven项目下对应的test目录)
运行环境(导入jar包后运行时有效)
注:scope默认值为compile