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

一、前言

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依赖范围及生命周期

相关推荐
玄〤17 分钟前
Java 大数据量输入输出优化方案详解:从 Scanner 到手写快读(含漫画解析)
java·开发语言·笔记·算法
tb_first19 分钟前
SSM速通3
java·jvm·spring boot·mybatis
独自破碎E25 分钟前
总持续时间可被 60 整除的歌曲
java·开发语言
Python+JAVA+大数据29 分钟前
TCP_IP协议栈深度解析
java·网络·python·网络协议·tcp/ip·计算机网络·三次握手
丶小鱼丶29 分钟前
Java基础之【多线程】
java
东东5161 小时前
基于vue的电商购物网站vue +ssm
java·前端·javascript·vue.js·毕业设计·毕设
她说..1 小时前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
鹿角片ljp1 小时前
力扣9.回文数-转字符双指针和反转数字
java·数据结构·算法
skywalker_111 小时前
网络编程篇
java·网络协议·网络编程
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于Java的九价疫苗预约系统为例,包含答辩的问题和答案
java·开发语言