JaveWeb:Maven工具的使用
一、Maven概述
Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
在一个项目的实际开发中,我们不可避免地需要使用大量jar包,比如连接MySQL的jar包等等。
但是如果这些jar包我们都一个个地手动去进行导包,倘若在一个大项目中,这将会是一个大工程,因此Maven的伟大诞生,实现了帮助程序员自动导入和配置这些jar包,减少了很多工作量。
1、标准化项目结构
与此同时,每个程序员在项目中选择编写代码的编译器不一样,有的人使用IDEA,有的人使用eclipse,不同的编译器,项目结构也不会不一样,导致不通用。因此,Maven提供了一套标准化的项目结构,使得不同的IDE之间都可以使用这套标准化的项目结构。
下图为Maven的一个标准化项目结构
2、标准化的构建流程
在任何项目中,程序猿编写的代码都需要经过编译、测试、打包、发布等等操作,这些操作在小项目中或者平时的Java学习中不会感觉到很繁琐。但是在倘若以后我们在一个互联网大厂中工作,一个项目中会有上百个模块,每个模块都人工地进行编译、测试、打包、发布等操作,做完这些工作难免不怀疑人生。所以Maven的出现使得程序猿可以通过一些简单的命令来完成项目的构建,从而完成编译、测试、打包发布等操作。
--Maven常用命令
compile:编译
clean:清理
package:打包
install:安装
当我们使用这些命令的时候,Maven会给我们提供相对应的插件,比如我们需要打包的时候,Maven就给我们提供了打包的插件,
在第一次使用这些命令的时候Maven会先下载插件。
使用这些命令也很简单,我们只需要在命令窗口打开对应的项目
输入指令mvn + 命令,接着等待片刻即可,当出现BUILD SUCCESS的时候表示编译成功
3、依赖管理
依赖管理就是一开始说的给项目自动导入对应的jar包或者下载对应的插件,减少程序猿的工作量。倘若没有Maven,我们需要从网上找到对应的Jar包,对jar包进行下载,接着把jar包复制到项目结构中,再将jar包加入工作环境。
有了Maven之后,Maven可以使用标准的坐标配置来管理各种各样的依赖,只需要简单的几行代码就可以完成管理依赖。(下图为mysql连接所需jar包的一个标准的坐标配置)
二、Maven模型
- 项目对象模型(POM)
每一个Maven项目中都会有一个pom.xml文件,在这个文件中,我们可以定义该项目的坐标、项目依赖、项目信息、插件等等信息,从而帮助我们高效地管理项目。
- 依赖管理模型(Dependency)
程序猿可以通过Maven的依赖管理对项目中所需的jar包进行统一的管理。这些对项目的管理通过坐标来实现的,比如通过标准化的坐标来实现导入相对应的jar包。
- 构建生命周期/阶段
Maven的生命周期包括清理、编译、测试、部署等过程,其中每一个过程都是一个生命周期。
在同一套的生命周期内,执行后面的命令,前面的命令会自动执行
比如当我们执行test(测试)命令的时候,前面的compile(编译)命令会先自动执行,接着再执行test(测试命令)。
1、仓库
这里说的仓库是什么呢???
很明显,从字面上了解仓库就是存放东西的地方,也就是存放我们需要的jar包的地方,当我们在项目中使用标准化坐标来管理对应jar包的时候,可能会想过这样的一个问题,这个jar包到底存放在哪?其实这些jar包存放在我们本地计算机的本地仓库中,当我们需要jar包的时候,便会在本地仓库中拿需要的jar包。
仓库主要分为以下三种类型:
- 本地仓库:本地计算机下的一个目录
- 中央仓库:由Maven团队维护的全球唯一的仓库 传送门
- 远程仓库(私服):一般由公司和团队搭建的私有仓库,比如阿里云
从仓库中查找jar包的流程如下:
- 先从本地仓库中寻找该jar包,若该jar包存在,则直接在项目中引用
- 若本地仓库无该jar包,则从远程仓库中寻找,若远程仓库有该jar包,则将该jar报下载到本地仓库再从本地仓库中引用
- 若远程仓库无该jar包或者无远程仓库,则从中央仓库下载到本地仓库再对jar包进行引用
三、Maven的下载与配置
1.下载与环境配置
- 打开Maven官网,下载对应的版本的压缩包,这里下载的是3.8.4版本
- 对压缩包进行解压
- 解压完毕后就需要配置环境变量了
需要配置好以下的环境变量
1、M2_HOME Maven目录下的bin目录
2、MAVEN_HOME Maven的目录
3、在系统的path中配置%MAVEN_HOME%\bin
- 配置完环境之后按win+r,输入cmd,打开命令窗口,输入mvn -version,若出现版本信息则表示配置成功。
2、配置 阿里云镜像 与 本地仓库
为什么要配置阿里云镜像呢?
阿里云镜像是国内的一个Maven的远程仓库(私服),倘若不配置远程仓库,那么下载jar包的时候默认是在中央仓库中下载的,中央仓库是国外的网站,下载速度比较慢,所以为了加速我们的下载,配置阿里云镜像是必不可少的。
- 打开Maven目录下的conf文件夹下的setting.xml文件
- 在setting.xml下找到mirrors标签,往里面加入阿里云私服
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
- 配置完阿里云私服之后,我们需要配置一个本地仓库,在Maven目录下新建一个maven-repo文件夹,接着在setting.xml文件里面添加一个本地仓库
<!-- 把标签内的地址换成自己的maven-repo文件夹的地址即可 -->
<localRepository>D:\Environment\apache-maven-3.8.4-bin\apache-maven-3.8.4\maven-repo</localRepository>
完成上面操作之后,Maven的基本配置就完成了!!!
四、IDEA使用Maven
1、IDEA的基本设置
- 打开IDEA(这里用的是2021.3版本),新建项目,选择Maven,点击下一步
- 输入项目名以及存在项目的地址
-
接着打开设置
-
在设置中搜索Maven
- 勾选重写,将用户设置文件改为本地安装的Maven设置文件的路径,修改完成后本地仓库也会自动修改
-
搞完之后IDEA中的Maven设置基本完成
-
返回项目目录我们可以看到当前Maven目录下的项目结构如下所示
2、导入Maven文件
- 点击IDEA右边边缘处的Maven(社区版没有此功能),点击加号选择对应的pom.xml文件即可
- 倘若找不到Maven面板,勾选以下选项即可
- 在IDEA中我们不需要输入命令即可对项目进行相对应的操作,只需要双击即可
3、推荐插件
在工具窗口对项目进行生命周期的操作依然是有点不太方面,因此在这里推荐一个插件——Maven Helpr
安装这个插件之后,我们可以在项目目录对整个项目右键
在这里就可以进行一系列的生命周期操作
五、依赖管理
1、导入jar包
使用Maven最常用的无疑是导入jar包,也就是依赖管理
最常用的导入jar包的方法有有两种:
1、编写定义坐标的代码
比如要导入连接mysql的jar包,我们只需要在pom.xm文件内编写以下代码,并点击右上角此处按钮,Maven就可以自动帮我们导入jar包
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.14</version>
</dependency>
</dependencies>
等待片刻,当右下角进度条完成后,我们就可以在外部库中查看到已经导入的jar包了
2、快捷键快速导入jar包
在pom.xml文件下按alt+ins,选择依赖
搜索所需要的jar包,双击选择
此时会发现jar包代码已经自动生成
2、小提示
每次编写一次依赖都要手动点击一次刷新按钮,在编写程序的时候有时候难免觉得不太方便
我们可以在设置中的构建工具中,将外部变更勾选为任何变更,这样当我们编写依赖的时候,就会自动刷新了
3、依赖范围
在依赖中我们可以通过scope标签来指定依赖的作用范围
scope取值 | 有效范围(compile, runtime, test) | 依赖传递 | 例子 |
---|---|---|---|
compile | all | 是 | spring-core |
provided | compile, test | 否 | servlet-api |
runtime | runtime, test | 是 | JDBC驱动 |
test | test | 否 | JUnit |
system | compile, test | 是 |
- compile:作用与编译环境、测试环境、运行环境
- provided:作用与编译环境、测试环境
- runtime:作用与测试环境、运行环境
- test:作用于测试环境,经典的就是Junit坐标,在使用Junit时候,都会将scope设置为该值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95025.html