Maven的概述/简介/安装/基本使用/IDE配置/依赖管理
(一)Maven概述:
(1)概念:管理构建java项目的工具
(2)提供功能:
2.1 提供了一套标准化的项目结构
产生背景:一般来说,能够编写java语言的编程工具,例如eclipse,Intellij IDEA等,它们的项目结构是不一样的,因此在这个软件中编写的项目到了另一个软件里面是运行不通的。而maven提供了一套标准的项目结构,使得届时编写出来的代码文件结构皆以下图表示:
那么此时几个软件之间的代码文件就可以互通了
2.2 提供了一套标准化的构建流程
寻常的项目构建流程如下:编译----测试----打包----发布
但是到了大型的项目中,几百次如此的项目构建十分繁琐,因此maven提供了简便的构建方式:
右键maven项目,点击run maven,就会出现一个菜单,上面是一个又一个的操作。包括了test,package等项目构建操作。
2.3 提供了一套依赖管理机制
在以后的大型项目开发中,依赖的jar包将多达上百个,传统的去网上下载jar包是一件十分痛苦的事情,因为包可能下载不了,也可能使用效果不好,maven提供了一套类似于pip指令下载功能的机制,使得下载jar包功能变得简单。
在xml的配置文件中编入如下代码:
就可以自动下载并配置好jar包。由于其功能的便利性,目前位于项目构建工具市场第一的份额,而gradle,ant分别排于第二第三
(二)maven简介:
基于项目对象模型(Project object modle-------POM)的概念,通过一小段信息完成项目的构建,报告,文档
maven模型:
仓库:
概念:仓库其实是我们maven项目里面的一个文件夹,里面存放了我们可能会用得到的jar包,届时通过一段代码实现jar包的依赖,就是从这里面拿出来的。在pom.xml文件中,每一个项目或者jar包都具有自己的唯一标识,因此可以建立依赖
分类:
1.本地仓库:自己计算机上的一个目录
2.中央仓库:Maven公司全球独有的唯一仓库
3.远程仓库:其他公司自己搭建的仓库
流程:
当在xml文件中提供了一个坐标来下载jar包的时候,会先去本地仓库查找,没有的话就会去maven中心仓库查找并下载到本地仓库,然后从本地仓库依赖到本地项目。如果搭建了远程仓库,那么就会先从远程仓库中找,找不见就去中央仓库中找,然后再返回远程仓库。。。如下图:
私服的存在是为了提高下载速度的。
(三)maven的安装及配置:
(1)进入https://maven.apache.org/download.cgi网站,下载:
(2)下载完之后,解压,然后将bin文件目录配置成环境变量:
系统变量中:
Path中:
进入cmd验证:
说明环境变量配置成功:
(3)在xml文件中手动配置本地仓库地址以及搭建远程阿里云私服。
通过vscode打开,进入后:
(1)找到截图中的位置:并且增加红框里面的代码:
<localRepository>F:\apache-maven-3.9.11\mvn_resp</localRepository>
(2)找到如下截图中的位置:并且增加红框里面的代码:
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>
至此配置完成。
(四)maven的基本使用
(1)maven常用命令:
1.compile 编译
打开powershell命令行,输入mvn compile,如果本地仓库中没有依赖jar包,则会从**远程仓库**/**中央仓库**去下,下好之后再次输入,就会发现迅速的BUILD SUCEESS,也就是编译成功。并且编译完后还会在src同级生成其代码的字节码文件
2.install 安装
输入mvn install 会将先前打包好的jar包添加进本地仓库中
3.package 打包
输入mvn pacjage 会将java类型的文件打包成jar文件,jar文件里面依旧是class字节码文件
4.clean 清理
输入mven clean 会删除先前编译过的字节码文件
5.test 测试
输入mvn test ,会对main文件中的代码进行运行
也就是说,除了clean这个操作之外,每个基本操作都会直接或间接的检查本地仓库是否有其依赖,没有的话就从中央或远程仓库去下。
例如如果没有编译好直接打包,就会去下载。
(2)maven的生命周期
概念:描述的是在一个构建项目流程中经历了几个事件。
种类:maven的生命周期一共被分为三类:
1.clean(清理工作):
pre-clean-----------clean------------post-clean
2.default(默认的核心工作:编测打安等):
compile------test--------package--------install
3.site(产生报告,发布站点):
pre-site-----------site------------post-site
特点:同一生命周期内,执行后面的指令,会自动执行前面的指令(即使前面的指令已经被执行过)
(五)IDEA配置maven:
5.1 新建一个项目配置好Maven
1.新建一个项目
2.点击settings,进入搜索maven,并找到这三行:
把maven home path更改成你的已下载好的maven的路径,截止到版本那一层,不要往下,成功后会自动显示版本:Version:…
把User setting file更改成你那个文件里面的settings.xml文件的路径,如上图为例。成功后下方的local repository也会自动更改成你那个目录里面的自建的本地仓库(如果你先前建立好了本地仓库的话)
5.2 maven坐标详解:
1.什么是坐标:
就是资源的唯一标识。
2.坐标由哪几部分构成,以mysql为例:
(1)groupId:一般是maven项目隶属组织的名称,一般是域名的反写,例如com.fjm,或者直接说mysql
(2)artifactId:你当前项目的名称
(3)version:你当前项目的版本,1.0/1.2/1.0.0/…随便你定。
5.3 创建maven项目
在此处点击new project:
进入页面,进入这一栏:
自定义项目名称,点击create,即可正常创建
5.4 导入maven项目:
点击Quick Definition,就可以在屏幕最右侧看到如下图标:
点击那个m图标,点击加号:
从里面找出要导入的maven项目的pom.xml文件点击之后,即可导入(由于目前没有多余的maven项目,因此不做演示):
注意:可以配置一个mavenhelper插件,使得日后可以更为简便的构建项目和断点测试。
下载完成之后重启IDEA即可配置成功。
(六)依赖管理
(1)6.1 xml语句编写:
标准格式:
<dependicies>
<dependency><groupId></groupId><artifactId></artifactId><version></version></dependency>
</dependicies>
如何快速粘贴依赖某个文件的这个代码块?
在浏览器上搜索导入的文件后面跟上maven,例如搜素mysql maven,并进入链接中:
里面有很多很多的版本。点击一个进去,下滑,找到这一部分:
里面就是待粘贴复制的对象。
复制粘贴进入xml文件中:
发现会报错。此时点击右上角的:
则可以自动下载。可是每次更改都需要手动点击下载太过于麻烦,因此可以如如此配置:
点击apply, ok。日后只要在xml文件中修改,就可以进行改动,不用再手动点击那个图标完成下载。同时,对于已在本地仓库中加上的依赖,可以通过Alt + Insert,切入快捷画面:
点击dependency,搜索想找到的依赖,例如mysql:
点击ok即可自动完成配置
(2)依赖范围:
代码标准格式:
<dependencies><dependency>....<scope>.....</scope> ############################<denpendency>
</dependencies>
在< scope >和< /scope >之间,可以填写如下的这些单词。每个单词都界定了依赖的范围。如果日常不显式写出scope,就默认范围是compile。也就是从编译,测试,运行都是可以使用的到这些依赖的。
至此,maven的基本知识已经过完