(二十七)Maven(依赖)【安装】+【项目结构】

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 文件夹里存着。

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

相关推荐
linda公馆1 小时前
Maven项目报错:java:错误:不支持发行版本 5
java·开发语言·maven
Ulyanov1 小时前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 可视化革命——基于 PyVista 的 3D 战场构建与实时渲染
开发语言·python·算法·3d·系统仿真
Heaphaestus,RC1 小时前
Slate到UMG的封装原理揭秘
开发语言·ue5
学习中.........1 小时前
常见设计模式
java·设计模式
爱喝热水的呀哈喽1 小时前
一段即插即用的hypermesh命令行
开发语言·python
Ulyanov1 小时前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 终极试炼——全链路综合仿真与蒙特卡洛打靶
开发语言·python·系统仿真·雷达电子对抗
敖正炀1 小时前
JDBC 到 ORM:Spring Data JDBC、JPA 与 MyBatis 的定位与选型
java
@大迁世界1 小时前
45.什么是内联条件表达式(inline conditional expressions)?在事件处理里怎么用?
开发语言·前端·javascript·react.js·ecmascript
Henray20242 小时前
最低公共祖先 LCA
java·面试