javaweb学习day4--《maven篇》maven的项目创建及其依赖管理详解(基于最新版本的idea)

时间:2024-07-11 22:12:08

一、前言

javaweb学习的第四天,不知道今天你们是否坚持下去了。今天学习到的是maven,温馨提示一下,idea中自带maven不用自行去下载了。前期的配置工作太过复杂了,小编感觉自己能力有限并不能将其讲的太清楚,还请大家在B站上观看相关下载安装的视频,小编在这里只进行细节上的讲解。

将小编在学习过程中遇到的一些问题提出并加以解决,大家有什么其他的问题也可以提出来,一起去探讨一下。

事先说明一下,前端的学习已经结束了,不知道大家学的如何呢,重明天开始就要开启后端的学习了,这注定是一个艰难的过程,希望读者们能够和小编一同坚持下去。????????(ง •_•)ง

前端忘了的可以看一下下面这三篇文章欧????

《HTML篇》《JavaScript篇》《Vue篇》

二、maven简要概述

Maven 是一个流行的项目管理和构建工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。它提供了一种标准化的方式来构建项目,管理项目的依赖和文档,并且支持多模块项目的开发。

1. 项目管理

Maven 提供了一种声明式的方式来管理项目,通过一个项目描述文件(pom.xml)来定义项目的结构、依赖关系和构建过程。pom.xml 文件包含了项目的配置信息,如项目依赖、插件配置、构建目标等。通过定义这些信息,Maven 可以自动化地完成项目的构建和管理,使得开发者可以更加专注于代码的开发而不是配置管理。

2. 依赖管理

Maven 提供了强大的依赖管理功能。通过在 pom.xml 中声明依赖关系,Maven 能够自动下载所需的库文件,并且可以管理这些依赖的版本和传递依赖。依赖管理是 Maven 的一个核心功能,它简化了项目的构建和部署过程,同时确保项目使用的库文件是正确的版本。

3. 构建工具

Maven 提供了一套标准化的构建生命周期和构建过程。它使用插件来执行各种构建任务,如编译、测试、打包、部署等。Maven 的构建生命周期定义了一系列的阶段(如 validate, compile, test, package, install, deploy),每个阶段可以关联到一个或多个插件执行特定的任务。开发者可以根据需要扩展和定制这些构建过程。

4. 插件生态系统

Maven 的插件生态系统非常丰富,涵盖了各种各样的开发任务和工具支持。例如,有编译插件用于编译源代码,测试插件用于执行单元测试,打包插件用于生成可分发的软件包,部署插件用于将生成的软件包发布到远程仓库等。开发者也可以开发自定义插件来扩展 Maven 的功能。

5. 多模块支持

Maven 支持多模块项目的构建。通过定义父项目和子模块之间的依赖关系,Maven 可以协调和管理多个相关的项目模块,使得复杂项目的构建和管理更加高效和一致。这种模块化的支持使得团队可以更好地协同工作,并且可以实现模块间的代码重用和分发。

6. *仓库和镜像

Maven 使用*仓库作为默认的依赖库存储和分发中心,开发者可以在 pom.xml 中声明从*仓库下载依赖。此外,Maven 支持镜像机制,可以配置自定义的镜像站点来加速依赖下载和提高稳定性。

7. 生命周期和阶段

Maven 的构建生命周期由一系列阶段组成,每个阶段都有其特定的任务和目标。开发者可以通过执行不同的 Maven 命令来触发特定阶段的执行,例如 mvn compile 编译阶段,mvn test 测试阶段等。每个阶段可以关联到一个或多个插件执行特定的任务,这种设计使得 Maven 的构建过程非常灵活和可扩展。

8. 社区和生态系统

Maven 是一个开放且活跃的项目,拥有一个庞大的社区和丰富的生态系统。开发者可以在 Maven *仓库找到几乎所有流行的开源 Java 项目的库文件和插件,也可以通过社区参与讨论和贡献开发。

三、maven项目创建

最新版idea中maven项目的创建

四、maven依赖传递

在模块中手动创建依赖

右侧视图

调出视图框,方便后面的学习

注:这个视图需要自己去设置

步骤:视图->工具窗口->maven

项目模块显示图

步骤:maven模块->图表->显示图->项目模块

右侧视图和项目显示图的比较

五、maven依赖测试

如果所用到的依赖可以正常使用,系统就会自动提示。

注:系统默认模式下的依赖会同时适用与main&text文件夹

六、maven依赖范围及生命周期