本篇博客讲解我们在使用Spring框架时所要用到的Maven这个项目管理工具
它可以更方便的管理我们的项目,比如通过1.常用的Maven命令来进行编译、测试、打包、清理包等等,不仅如此,
2.Maven还可以对依赖进行管理,方便我们添加依赖、管理依赖。让我们快速获取到我们想要的依赖,而不用自己添加依赖的jar包。
一、Maven项目管理工具
1.1什么是Maven
Maven是⼀个项目管理⼯具。基于POM(Project Object Model,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项⽬管理工具软件。
Maven我的理解
大白话: Maven是⼀个项目管理⼯具, 通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
注:maven是可以单独使用的,跟idea没关系,只是idea把maven集成进来了
1.2 为什么要学Maven
⼀句话: 简单,方便,
提高我们的开发效率,减少我们的开发Bug.Maven提供的功能非常多
Maven我们主要是了解以下两个方面:
1. 项目构建
2. 管理依赖
1.3项⽬构建
创建maven项目
如下图在构建系统中选择Maven
1.4 Maven命令
在右边我们可以找到一个有M的图标,那就是Maven。相当于Maven的管理工具。
Maven的一些命令也在里面
常用命令
clean 清理class文件。可以把包清理掉。(通常是target目录。)
package 打包。点击之后会进行打jar包,此时idea文件目录中会出现target文件。包就在这里面。当出现BUILD SUCCESS说明打包成功。
install 编译、测试、打包,并将构建好的jar/war包安装到本地 Maven 仓库。工作中常用来发布包到本地。
deploy 编译、测试、打包,并将构建的工件部署到远程 Maven 仓库。工作中常用来发布包到远程Maven仓库。
其他命令
compile:编译项目的源代码,将.java文件编译为.class文件,在开发过程中检查代码的编译是否成功,或在构建前进行编译。
test:运行项目中的单元测试。验证代码的正确性,确保新代码没有破坏现有功能。
validate:当你刚刚创建或修改了pom.xml时,检查其配置是否有效。
site:生成项目的站点文档,包括项目的各种报告(如 Javadoc、测试报告、依赖关系等)。当你需要生成项目文档以供查看或发布时会用到
verify:执行项目的集成测试,验证项目是否已准备好进行发布。它包括编译、测试等步骤,并在这之后运行可能存在的集成测试。当你需要确保项目中的代码不仅通过了单元测试,还通过了集成测试,并符合发布标准时使用。
1.5依赖管理
上面说到,Maven是⼀个项目管理⼯具,
通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
获取的jar包,其实就是依赖.
pom.xml就是maven的配置⽂件,用以描述项⽬的各种信息
如下图,在文件目录中找到pom.xml文件
依赖配置
依赖:指当前项⽬运⾏所需要的jar包.
添加依赖
如果大家了解了前端,那么相当于我们在<dependencies>标签中添加依赖的坐标。,如下。 <dependencies> 这里面放置依赖的坐标,可以为多个。 </dependencies>通过
<dependencies>
<dependency>
</dependency>
</dependencies>
进行添加依赖
示例(我们添加8.0.30版本的mysql依赖):
<dependency>
< groupId>mysql<groupId>
<artifactId>mysql-connector-java<artifactId>
<version>8.0.30<version>
<dependency>
代码编写好之后,需要点击刷新按钮就可以完成添加依赖,
此时我们就可以看见旁边文件目录中多了些jar包
例如:我们添加依赖如下
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version></dependency>
</dependencies>
再点击这个刷新按钮,如果没有我们点击旁边的m。
此时如上图,就出现了刷新的按钮。
第二行,第一个刷新按钮也是可以进行刷新的。
我们点击刷新之后:我们在左边外部库中观察依赖有没有进来
我们发现,在外部库中,除了最开始有的<1.8>
还多了两个有关于Maven的。
其中第一个是mysql的依赖。是mysql还需要依赖的别的jar包
第二个则是我们添加的
我们发现Maven依赖不仅把当前的jar包依赖进行,还把这个jar包依赖的jar包依赖进来到项目之中
Maven对我们进行的依赖管理,会把当前依赖的依赖也会引入到当前项目中。
多余的那个是因为mysql应用的那个jar包里面的东西,因此也会被依赖到项目之中。
查看依赖关系
此时 我们需要用到一个插件来进行查看依赖关系
安装Maven Helper插件
安装插件
主菜单>设置>插件
安装完之后pom文件中会出现一个插件框
文本旁边的选项,就是进行依赖分析的。点击之后,我们就会看到依赖关系
上面有多种模式来展示依赖关系
1.Conflicts冲突
2.所有依赖以列表形式显示
3.所有依赖以树的结构显示
4.显示组ID
5.显示依赖大小
依赖代码分析
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version></dependency>
</dependencies>
整个描述我们称之为依赖的坐标,我们可以确定jar包固定的位置
是基于Maven仓库的坐标
Maven仓库地址:
仓库的分类:
分为
本地仓库:随着使用时间越来越长,下载jar包越来越多占用硬盘空间越来越大
和
远程仓库
其中
远程仓库又分为中央仓库和私有仓库
本地仓库地址:
远程仓库地址:
1.仓库地址:中央仓库地址https://repo1.maven.org/maven2/
2.查询界面地址: 查询界面https://mvnrepository.com/
这两个有可能不一致, 以仓库地址为准。查询界面会有一定的滞后性。
仓库地址在国外。
3.国内源:将国外的仓库地址搬到国内.我们可以自己设置
4.私服:中央仓库和国内源都是公开的,所有人都可以看到,企业开发时,一些项目代码具有一定的私密性。不会公开,因此企业会建立自己的私服,访问需要账号密码。
1.6刷新依赖来源
我们自己引入依赖:
本地仓库 > 本地仓库去中央仓库拿,下载后从本地仓库拿。
本地仓库最开始的时候是空的。最终我们所使用到的代码都可以从本地仓库拿
私服:
先从本地仓库拿,若没有去私服,私服也没有去中央仓库拿。返回到私服,私服再返回到本地。
一个jar包只下载一次。本地没有则去私服拿,私服没有才会去中央仓库拿
中央仓库也包含国内源。
1.7设置国内源(访问会更快)
仅限于在学习阶段,公司中不用国内源,而是直接用私服。若在公司去找同事要setting文件就好了。
setting文件用来配置Maven。
因为公司可能不让用Maven的阿里云镜像地址等等。。
这样setting文件里会包含公司的私服账号地址密码等等信息
在设置中,找到构建、执行、部署。中构建工具中有Maven项。用户设置文件中有setting文件。
如下图
在其中找到用户设置文件。打开文件,里面有一个settings.xml
如何设置国内源?
1.修改settings.xml文件
2.如果没有settings.xml文件,则找一个。
Maven仓库默认在国外https://mvnrepository.com/,国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库
也可以选择别的仓库,参考:Maven镜像地址⼤全
打开settings.xml,在mirrors节点上,添加内容如下:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿⾥云公共仓库</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
settting文件在我的桌面中的Maven配置文件中哦
注意:所设置的目录,如项目路径,等不要有中文路径!!!!
目录如果包含中文,如何修改?
1.创建你期望放的目录
2.进入当前Maven配置目录到.m2
3.复制.m2中的文件到你创建的目录
4.修改idea配置
- 修改Maven仓库目录
修改用户设置文件目录和本地仓库目录。并且打上两个重写的√
注意分别指定settings.xml文件和repository
- 新项目设置
选择文件->新建项目设置->新项目的设置->构建、执行、部署->构建工具->Maven
再把相应目录重写改一下。