Maven提供了一套标准化自动化的构建流程
1、解决了繁琐的手动的,清理-编译-测试-打包-部署这些功能
2、解决了管理项目中的文件结构,指定了那个文件应该放哪里。
3、解决了jar包很多的情况,体积大,占用磁盘大,传输文件大传输浪费时间。
4、解决了统一管理仓库所有jar包,即使你没有这个jar包他也会自动给你远程下载一个jar包。
5、解决了jar包和jar包有冲突问题,以前需要升版本或降版本来实现,现在通过依赖传递的特性,帮我把们把相关的jar包都会引入进来,有效果解决冲突问题。

简单理解
Java 项目的"依赖"可以分层:
依赖
├── Java库依赖
│ ├── Maven
│ ├── Gradle
│ └── 本地Jar
│
├── JDK依赖
│
├── 系统依赖
│
├── 服务依赖
│
└── 环境依赖
Java 后端12个实用的基础栈
| 组件 | 是否常见 | 说明 |
|---|---|---|
| Project Lombok | ✅ 非常常见 | 简化 getter/setter |
| SLF4J | ✅ 标准 | 日志门面 |
| Jackson | ✅ 标准 | JSON 序列化 |
| Commons-Lang3 | ✅ 常见 | 字符串/工具类 |
| Hutool | ⚠️ 国内常见 | 大厂不一定统一使用 |
| OkHttp | ✅ 常见 | HTTP 调用 |
| Validation 参数校验 | ✅ 标准 | Hibernate Validator |
| MySQL 驱动 | ✅ 必备 | 数据库连接 |
| MyBatis-Plus | ⚠️ 国内很多 | 但不少大厂不用 Plus |
| Druid | ⚠️ 曾经流行 | 现在很多转 HikariCP |
| Redis | ✅ 几乎必备 | 缓存 |
| JUnit 5 | ✅ 标准 | 单元测试 |
安装Maven
先要确定你安装了java的环境是正常的,我用的jdk是17.
运行cmd-->java -version

官方网站:Maven -- 下载 Apache Maven
windos下载下面这个

解压出来
解压后配置环境变量

再改改path,这里一定要加上%apache_maven%\bin全局使用

运行-->cmd-->mvn -v
检查下版本装好没

在idea中去配置他

"已捆绑"= IDEA 自带的、内置的 Maven,不是你自己额外安装的。
你可以自己选择自己刚下载的。
- 它的版本是 3.9.11(图里也标出来了),不用你手动下载、配置环境变量,IDEA 安装时就自带了一份。
- 作用是:哪怕你电脑上没装 Maven,IDEA 也能用这个自带的 Maven 帮你构建项目、下载依赖。
现在可以使用MVN命令去创建一个(这是一种古老的方法可以不看,贴上来只是为演示原理,新方法在下面)
在当前文件夹下,运行-->cmd-->mvn archetype:generate
c

点上面,输入cmd

在当前文件夹下,运行-->cmd-->mvn archetype:generate

没安装他会先安装

回车确认版本9对应就是.15版本
c

让你输入artifactId:(你把他理解成你项目的名称)

版本直接回车确认

这是问你包名还改不改?是就直接回车

最后一步他问你YSE还是NO,输入:y

现在就在你的文件夹下面的这个位置
【maven】管理下的一个项目了,我俗称搭建一个"脚手架"就搭建好了。



简单方法就是,直接创建**【maven】管理下的一个项目了,我俗称搭建一个"脚手架"就搭建好了。**

这就是一个标准的**【maven】管理下的一个项目了**

这里的文件夹是采用了约定的方式
你只能按照他指定的文件来存放。
你放错位置是不编译的!

最重要的文件pom.xml(没有他就不是maven项目)
学习Maven控制就是为了,调整这个文件
我们先一层一层的来理解

.idea:这个是idea自动生成的和maven没关系。为了让你下次打开项目时,直接恢复到你上次关闭时的状态(比如你上次打开的文件、光标位置、断点)。.mvn:Maven 自动构建的配置,它的唯一作用是:让别人拉取你的项目后,不用手动安装 Maven,就能用你项目指定的 Maven 版本构建项目,避免 "本地 Maven 版本不一致导致构建失败" 的问题。src:放你所有代码和资源文件的主目录,项目的核心都在这里面。.gitignore :告诉 Git 哪些文件 / 文件夹不用提交到版本库,避免把乱七八糟的文件传上去。pom.xml:Maven 项目的 "说明书",写清楚项目用了哪些依赖、怎么编译打包。外部库:Maven 自动下载的第三方 jar 包,你在 pom.xml 里加的依赖都在这里。临时文件和控制台:IDEA 运行项目时的日志、缓存,只是给你看运行过程用的。
| 目录 | 作用 | 是否会被打包 |
|---|---|---|
.idea |
IDEA 编辑器自己的配置文件 | ❌ 不会 |
.mvn |
Maven 统一版本配置文件 | ❌ 不会 |
src/main/java |
放正式业务代码 | ✅ 会 |
src/main/resources |
放正式配置文件 | ✅ 会 |
src/test/java |
放测试代码 | ❌ 不会 |
.gitignore |
Git 忽略文件配置 | ❌ 不会 |
pom.xml |
Maven 依赖和打包配置 | ✅ 会(参与打包) |

| 文件 | 大白话说明 |
|---|---|
.gitignore |
IDEA 自己用的忽略规则,告诉 Git 别提交.idea 里的文件 |
compiler.xml |
存这个项目的编译器设置,比如 Java 版本、编译参数 |
encodings.xml |
存项目里所有文件的编码格式,比如 UTF-8 |
jarRepositories.xml |
存 Maven 仓库地址和 Jar 包下载配置 |
misc.xml |
存项目杂项配置,比如项目 SDK 版本、语言级别 |
workspace.xml |
存你当前的 IDE 工作区状态,比如打开的文件、布局、断点 |

| 文件夹 | 大白话说明 |
|---|---|
src/main(不要可以删自己建) |
放正式上线要用的代码和配置,打包后会被放进最终的 Jar 包 |
src/test |
放单元测试代码和测试用的配置,只在测试阶段用,不会被打包 |

| 文件夹 | 大白话作用 |
|---|---|
java |
放你所有写的 Java 业务代码,编译后会变成 class 文件,是项目的核心逻辑 |
resources |
放配置文件、静态资源(比如 Html,css,XML、properties、图片)打包后和 class 一起被加载 |

| 内容 | 大白话说明 |
|---|---|
org.example |
Maven 自动生成的基础包路径,用来放你的 Java 类文件,避免和别人的类重名 |
Main |
项目的主入口类,里面有 main 方法,运行项目就是从这个方法开始执行的 |

| 目录 | 作用 | 是否会被打包 |
|---|---|---|
src/main/java |
放业务核心代码 | ✅ 会被打包进最终的 Jar/War 包 |
src/test/java |
放单元测试代码(验证业务逻辑是否正确) | ❌ 不会被打包,只在本地测试用 |
点运行以后会生成一个target文件
就是把你写的 Java 源码,编译成电脑能看懂的文件,自动装在 target 文件夹里存着。

上半部分就是人看人写的,下半部分橙色区域就是机器看的懂的机器转成了它看的懂的文件


