一.什么是Maven
Maven是一个项目管理工具,通过pom.xml文件的配置获取jar包,不用手动去添加 jar 包。
二.创建一个Maven项目
(Idea本身已经集成了Maven,我们可以不用安装,直接使用)

三.Maven命令

clean:删除文件
validate : 验证项目配置是否正确
compile : 编译项目主代码(src/main/java),生成.class文件到target/classes目录。
test : 编译并运行单元测试代码(src/test/java),使用 JUnit 等框架检查代码逻辑。
package : 将编译后的代码打包成可分发格式(如 JAR、WAR),输出到target目录。
verify : 执行集成测试,验证打包后的文件是否符合质量标准(比如检查集成环境下的功能)
install : 将打包好的文件安装到本地 Maven 仓库(默认~/.m2/repository),供本地其他项目依赖使用。
site : 生成项目文档站点(包含 Javadoc、测试报告、依赖说明等)
deploy : 将打包好的文件部署到远程 Maven 仓库(如公司 Nexus),供团队其他成员或生产环境使用
关于打包:
打包就是把所有的class文件全部放在一起,打成jar包或者war包
已经写好的代码需要引入到其他项目中就需要打成 jar 包;war包可理解为一个web项目,里面的东西通常用于网站。

四.依赖管理:

如上图:依赖管理的框架为:
<dependencies>
<dependency>
//一个依赖
</dependency>
<dependency>
//一个依赖
</dependency>
</dependencies>
在 dependencies 里面放置依赖坐标,在dependency中放置依赖。放置完成后,点击刷新按钮就可以完成操作。
依赖传递
有的项目依赖是很繁琐的,比如A依赖B,B依赖C,那么当A项目引入B的时候,也需要引入C,这就是依赖的传递性,由于maven的依赖就有传递性,所以会自动把依赖的其他jar包一起导入,为我们手动传递依赖节省了时间。
直接依赖和间接依赖:
直接依赖:当前项目中通过依赖配置建立的依赖关系。
间接依赖:被依赖的资源如果依赖其他资源,则当前项目间接依赖其他资源。
依赖排除
随着项目越来越复杂,那么依赖关系也会变得更加麻烦,那么我们就可以通过依赖排除来处理掉我们不需要的jar包
maven help 插件:
当项目比较复杂的时候,就会产生jar包冲突,这时候就需要解决依赖冲突,而 Maven help插件就可以使我们来观察到包和包之间的依赖关系。

此时我们右键就可以排除掉不要的依赖:

maven仓库:

Maven仓库分为两大类:本地仓库和远程仓库,其中远程仓库又分为中央仓库,私服和其他公共库。
当我们在pom文件中配置完依赖之后,点击刷新,Maven会根据坐标的位置,去仓库里寻找jar包并且下载下来添加到项目中,而下载这个jar包的地方就是仓库。
本地仓库:自己计算机上的一个目录(用来存储jar包),当我们的项目中引入依赖之后,首先就会从本地仓库来查找是否有对应的jar包,如果有的话就会直接引用,如果没有的话,就回去中央仓库寻找并且下载到本地仓库。
本地仓库地址:
File --- settig -- 搜索maven:
以上就是我们的maven本地仓库的地址。
中央仓库:
中央仓库使maven中内置的一个远程仓库的地址,服务于整个互联网。由maven团队维护。
仓库地址:https://repo1.maven.org/maven2/
我们可以通过https://mvnrepository.com/ 来查询并且下载
私服:
私服一般是由公司团队搭建的私有仓库
Maven下载资源方式:
1.首先在本地仓库寻找,如果有则直接返回,没有的话就会从私服寻找,如果有则直接返回,没有的话就会从中央仓库下载,如果中央仓库也没有的话,就会直接报错,而如果中标杨仓库有的话,就会先缓存在私服上,然后再缓存在本地仓库里面。
maven设置国内源:
因为中央仓库在国外,下载缓慢,所以我们可以借助国内的一些公开的远程仓库来下载资源。
maven镜像地址大全:https://zhuanlan.zhihu.com/p/627320558

通过maven仓库地址来找到setting文件,在mirrors节点上,添加内容如下

SpringBoot程序:
首先我们需要新建一个新的项目:



其中:
Group Id :组织ID
Artifact Id: 项目ID
Version:项目版本:
Project type Maven : Maven项目
Language : 开发语言
Packaging Jar: 打包方式
Java Version :Java版本
Project name: 项目名称
Project description : 项目描述
Package name:项目包名

这个页面是用来选择SpringBoot版本和添加依赖的,如图:3.5.9就是Spring Boot 的版本,Spring Web就是我们添加的依赖。
此时我们观察一下POM文件:
pom文件里面的<dependency>里面的内容就是我们添加的依赖了:

把鼠标放在项目ID上面,我们可以查看到项目的版本,当然,项目的版本我们是可以进行指定的:需要使用<version>标签


父工程:
每个SpringBoot工程都有一个父工程,他们所依赖的版本号在父工程中进行统一管理。父工程指定版本号后,会引入所指定版本的依赖,而我们创建的SpringBoot项目会继承到SpringBoot工程。
目录介绍:

src / main / java : Java源代码
src / main / resources :静态资源或者配置文件
static:静态资源文件夹,例如:js,css,html,不需要服务器数据进行绑定的页面。
/templates:模板资源文件夹,如:JSP,Freemarker,需要服务器动态渲染数据的文件
src / test / java : 测试代码源代码
最后就是我们看到的pom文件:maven配置
启动代码:
在Application里面有 SpringBootApplication注解,这个是启动类注解,点击启动的main方法就可以运行SpringBoot 了

简单应用:我们创建一个类:

完成代码后启动Application类,用浏览器访问 :http://127.0.0.1:8080/sayHi
就可以得到如下页面:
