2. Maven 项目管理工具
2.1 Maven介绍
2.1.1 什么是Maven
Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于
基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内
行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、
依赖管理。
2.1.2 Maven的作用
- 依赖管理
- 依赖指的就是是 我们项目中需要使用的第三方Jar包, 一个大一点的工程往往需要几十上百个 Jar包,按照我们之前的方式,每使用一种Jar,就需要导入到工程中,还要解决各种Jar冲突的问题.
- Maven可以对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制
- 一键构建项目
- 之前我们创建项目,需要确定项目的目录结构,比如 src 存放Java源码, resources 存放配置文 件,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻 烦
- Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的 Java项目.
2.2 Maven 的使用
2.2.1 Maven软件的下载
使用 Maven 管理工具,我们首先要到官网去下载它的安装软件。
http://maven.apache.org/download.cgi
目前最新版是 apache-maven-3.6.3 版本
2.2.2 Maven软件的安装
Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下,比如:H:\software\maven 下面。
解压后目录结构如下:
1. bin:存放了 maven 的命令
2. boot:存放了一些 maven 本身的引导程序,如类加载器等
3. conf:存放了 maven 的一些配置文件,如 setting.xml 文件
4. lib:存放了 maven 本身运行所需的一些 jar 包
2.2.3 Maven环境变量配置
1) 配置 MAVEN_HOME ,变量值就是你的 maven 安装的路径(bin 目录之前一级目录)
2) 将MAVEN_HOME 添加到Path系统变量
2.2.4 Maven 软件版本测试
通过 mvn -v命令检查 maven 是否安装成功,看到 maven 的版本为 3.6.3 及 java 版本为 jdk-11 即为安
装 成功。 打开命令行,输入 mvn –v命令,如下图:
2.3 Maven 仓库
Maven中的仓库是用来存放maven构建的项目和各种依赖的(Jar包)。
2.3.1 Maven的仓库分类
本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,
远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。
中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中
央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含
了世界上大部分流行的开源项目构件
2.3.2 Maven 本地仓库的配置
1) maven仓库默认是在 C盘 .m2 目录下,我们不要将仓库放在C盘,所以这里同学们要重新配置一下.
2) 为了方便同学们的使用,老师为大家提供了一个本地仓库,将 “repository.rar”解压至自己的 电脑
上,我解压在 H:\software\repository 目录下(注意最好放在没有中文及空格的目录下)。
2) 在maven安装目录中,进入 conf文件夹, 可以看到一个 settings.xml 文件中, 我们在这个文件中, 进行本地仓库的配置
3) 打开 settings.xml文件,进行如下配置如下:
2.3.3 配置阿里云远程仓库
Maven默认的远程仓库是在国外, 所以下载jar包时速度会非常慢, 这里推荐大家使用我大天朝的阿里云 仓库
1) 打开 settings.xml,找到 标签 , 下面的内容复制到 中 即可
2.4 创建Maven项目
2.4.1 IDEA中配置Maven
1) 打开IDEA 创建一个新的project
2) 修改默认配置配置
2.4.2 创建Maven工程
在IDEA中配置好maven后, 接下来我们使用maven去快速的去构建一个 JavaWeb项目
1) project创建好以后, 选择创建module
2) 选中创建一个 maven 工程
3) 点击 Next填写项目信息
进行一下修改
4) 创建好的工程,长这个样子
Maven目录说明:
2.4.3 Maven工程改造
当前创建的maven项目是一个 普通的Java项目,不是web项目,我们要进行一下改造
1) 在main目录下创建一个webapp文件夹
2) 选择 project Structure ---> facets---> 点击+号 添加web ---> 选择当前工程hello_maven
3) 修改路径信息
修改前
4)修改为 我们的 webapp目录
修改后
5) 点击ok 后,项目就变为了web项目, 在webapp目录下再创建一个 index.jsp,就OK了
2.4.4 pom核心配置文件
一个 maven 工程都有一个 pom.xml 文件,通过 pom.xml 文件定义项目的信息、项目依赖、引入插
件等等。
1) 创建一个Servlet, 缺少jar包报错, 要解决问题,就是要将 servlet-api-xxx.jar 包放进来,作为 maven工程应当添加 servlet的坐标,从而导入它的 jar
2) pom.xml 文件中引入依赖包的坐标
3) 一个Maven工程就是由 groupId , artifactId 和 version 作为唯一标识, 我们在引用其他第三方库的时候,也是通过这3个变量确定。
- 坐标的概念
- 在maven中坐标就是为了定位一个唯一确定的jar包。
- maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器
- Maven坐标主要组成(GAV) - 确定一个jar在互联网位置
4) maven 的依赖管理, 是对项目所依赖的 jar 包进行统一管理。
5) 坐标的来源方式
添加依赖需要指定依赖 jar 包的坐标,但是很多情况我们是不知道 jar 包的的坐标,可以通过如下方 式 查询:从网站中搜索即可
5.1) 输入网址,进入网址 , 进行查询
5.2) 点击进入后,可以看到各个版本的信息,选择3.1.0
2.4.5 添加插件
1) 添加编译插件, 设置 jdk 编译版本
本教程使用 jdk11,需要设置编译版本为 11,这里需要使用 maven 的插件来设置
在pom中加入如下配置:
2.4.6 运行Maven项目
1) 完善项目代码
ServletDemo01
index.jsp
2) 配置tomcat ,部署项目
3) 运行项目, 默认访问 index.jsp
4) 访问Servlet
http://localhost:8080/hello_maven/demo01
2.4.7 Maven的常用命令
1) 一个maven项目生命周期
使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些过程规范为一个生命周期,如下所示是生命周期的各各阶段:
maven 通过执行一些简单命令即可实现上边生命周期的各个过程
2) idea中安装好maven后, 在界面左侧有一个maven视图, 里面有对应的命令插件,可以执行上面表格中
的命令
3) 工具栏介绍
2.4.8 依赖范围介绍
1) A 依赖 B,需要在 A 的 pom.xml 文件中添加 B 的坐标,添加坐标时需要指定依赖范围,依赖范围包括
2) 项目中添加的坐标 ,并指定依赖范围