Maven(依赖)【安装】+【认识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/setterSLF4J✅ 标准日志门面Jackson✅ 标准JSON 序列化Commons-Lang3✅ 常见字符串/工具类Hutool⚠️ 国内常见大厂不一定统一使用OkHttp✅ 常见HTTP 调用Validation 参数校验✅ 标准Hibernate ValidatorMySQL 驱动✅ 必备数据库连接MyBatis-Plus⚠️ 国内很多但不少大厂不用 PlusDruid⚠️ 曾经流行现在很多转 HikariCPRedis✅ 几乎必备缓存JUnit 5✅ 标准单元测试安装Maven先要确定你安装了java的环境是正常的我用的jdk是17.运行cmd--java -version官方网站Maven – 下载 Apache Mavenwindos下载下面这个解压出来解压后配置环境变量再改改path这里一定要加上%apache_maven%\bin全局使用运行--cmd--mvn -v检查下版本装好没在idea中去配置他“已捆绑” IDEA 自带的、内置的 Maven不是你自己额外安装的。你可以自己选择自己刚下载的。它的版本是3.9.11图里也标出来了不用你手动下载、配置环境变量IDEA 安装时就自带了一份。作用是哪怕你电脑上没装 MavenIDEA 也能用这个自带的 Maven 帮你构建项目、下载依赖。现在可以使用MVN命令去创建一个这是一种古老的方法可以不看贴上来只是为演示原理新方法在下面在当前文件夹下运行--cmd--mvn archetype:generatec点上面输入cmd在当前文件夹下运行--cmd--mvn archetype:generate没安装他会先安装回车确认版本9对应就是.15版本c让你输入artifactId你把他理解成你项目的名称版本直接回车确认这是问你包名还改不改是就直接回车最后一步他问你YSE还是NO输入:y现在就在你的文件夹下面的这个位置【maven】管理下的一个项目了我俗称搭建一个“脚手架”就搭建好了。简单方法就是直接创建【maven】管理下的一个项目了我俗称搭建一个“脚手架”就搭建好了。从这里开始正式【认识Maven文件结构-详】这就是一个标准的【maven】管理下的一个项目了这里的文件夹是采用了约定的方式你只能按照他指定的文件来存放。你放错位置是不编译的最重要的文件pom.xml没有他就不是maven项目学习Maven控制就是为了调整这个文件我们先一层一层的来理解.idea这个是idea自动生成的和maven没关系。为了让你下次打开项目时直接恢复到你上次关闭时的状态比如你上次打开的文件、光标位置、断点。.mvnMaven 自动构建的配置它的唯一作用是让别人拉取你的项目后不用手动安装 Maven就能用你项目指定的 Maven 版本构建项目避免 “本地 Maven 版本不一致导致构建失败” 的问题。src放你所有代码和资源文件的主目录项目的核心都在这里面。.gitignore告诉 Git 哪些文件 / 文件夹不用提交到版本库避免把乱七八糟的文件传上去。pom.xmlMaven 项目的 “说明书”写清楚项目用了哪些依赖、怎么编译打包。外部库Maven 自动下载的第三方 jar 包你在 pom.xml 里加的依赖都在这里。临时文件和控制台IDEA 运行项目时的日志、缓存只是给你看运行过程用的。目录作用是否会被打包.ideaIDEA 编辑器自己的配置文件❌ 不会.mvnMaven 统一版本配置文件❌ 不会src/main/java放正式业务代码✅ 会src/main/resources放正式配置文件✅ 会src/test/java放测试代码❌ 不会.gitignoreGit 忽略文件配置❌ 不会pom.xmlMaven 依赖和打包配置✅ 会参与打包文件大白话说明.gitignoreIDEA 自己用的忽略规则告诉 Git 别提交.idea 里的文件compiler.xml存这个项目的编译器设置比如 Java 版本、编译参数encodings.xml存项目里所有文件的编码格式比如 UTF-8jarRepositories.xml存 Maven 仓库地址和 Jar 包下载配置misc.xml存项目杂项配置比如项目 SDK 版本、语言级别workspace.xml存你当前的 IDE 工作区状态比如打开的文件、布局、断点文件夹大白话说明src/main不要可以删自己建放正式上线要用的代码和配置打包后会被放进最终的 Jar 包src/test放单元测试代码和测试用的配置只在测试阶段用不会被打包文件夹大白话作用java放你所有写的 Java 业务代码编译后会变成 class 文件是项目的核心逻辑resources放配置文件、静态资源比如 Html,css,XML、properties、图片打包后和 class 一起被加载内容大白话说明org.exampleMaven 自动生成的基础包路径用来放你的 Java 类文件避免和别人的类重名Main项目的主入口类里面有main方法运行项目就是从这个方法开始执行的目录作用是否会被打包src/main/java放业务核心代码✅ 会被打包进最终的 Jar/War 包src/test/java放单元测试代码验证业务逻辑是否正确❌ 不会被打包只在本地测试用点运行以后会生成一个target文件就是把你写的 Java 源码编译成电脑能看懂的文件自动装在 target 文件夹里存着。上半部分就是人看人写的下半部分橙色区域就是机器看的懂的机器转成了它看的懂的文件从这里开始我们看一个真实的Maven依赖的java web项目文件结构放文件的位置一个不能错错就没法运行起来src/main/java里就是神仙大办公区所有 .java 必须再这里但 Tomcat 启动≠全部上班只有被「绑定、激活、关联」的神仙才会运行没关联的一律躺平睡觉写了也白写能让文件真正运行的 4 种关键关系完整版只要占其中任意一个Tomcat 就会运行它继承了父类比如继承 HttpServlet实现了接口比如 Servlet、Listener 接口被其他运行的类调用被 Servlet 调用、被工具类调用被配置文件注册web.xml 或注解 WebServlet 登记