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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c小红的图上划分(牛客127)

题意: 有一个无向图,有 n 个点 m 条边,q 个询问,每次给出 L,R,求将图划分为至少 L 个连通块,最多 R个连通块的最大划分价值,若不可划分输出 "NO ANSWER"。 图的划分定义为将图划分为一…

Knife4j的原理及应用详解(七)

本系列文章简介: 在当今快速发展的软件开发领域,API(Application Programming Interface,应用程序编程接口)作为不同软件应用之间通信的桥梁,其重要性日益凸显。随着微服务架构的兴起,API的数量…

每天一个数据分析题(四百二十四)- 单因素方差分析

关于单因素方差分析,下列说法不正确的是 A. 组间平方和只包含系统误差 B. 组内平方和只包含随机误差 C. 如果组间均方远大于组内均方,那么就说明不同水平之间均值存在着显著差异 D. 如果组间均方远大于组内均方,那么就说明分类变量对于数…

使用Java实现高性能的图像处理服务

使用Java实现高性能的图像处理服务 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 图像处理在现代应用中是一项常见而重要的任务,涵盖了从简单的格式转换到复杂的计算机视觉算法的各种需…

如何将本地仓库中的文件推送到远程git服务器

第一步:进入所在项目,右击打开"Git Bash Here" 第二步:git config --global user.email "18351810763163.com" // 输入你的名称 第三步:git config --global user.name "chenliang-sam&quo…

Java使用 BufferedImage生成验证码图片简单使用Java生成验证码 使用Java生成验证码图片 java生成验证码图片

Java使用 BufferedImage生成验证码图片简单使用Java生成验证码 使用Java生成验证码图片 java生成验证码图片 1、工具类2、调用 1、工具类 import org.apache.xmlbeans.impl.util.Base64; import org.springframework.web.context.WebApplicationContext; import org.springfra…

如何将一个2D数组切分成多个块

要将一个2D数组切分成多个块,可以考虑使用以下几种方法,具体取决于如何定义块的划分规则和需求。如果你希望将2D数组均匀地切分成固定大小的小块,可以使用简单的循环和切片操作。 1、问题背景 Python 中, 如果有一个 raw 数据文件&#xff0…

SSM社区物业管理系统-计算机毕业设计源码91276

摘要 随着城市化进程的加快,居民社区的规模和数量不断增长,传统的人工管理方式已经无法满足管理需求。借助信息技术和互联网应用,社区物业管理系统可以实现物业管理信息的集中化、自动化和便捷化,提供全方位的管理和服务支持。社区…

使用kubeadm重置k8s集群

1.Master 节点和Work节点都需要执行:kubeadm reset kubeadm reset -hAvailable Commands:alpha Kubeadm experimental sub-commandscompletion Output shell completion code for the specified shell (bash or zsh)config Manage configuration for a…

智慧水利的变革之路:如何通过大数据、物联网和人工智能构建高效、智能、可持续的水利管理新模式

目录 一、引言:智慧水利的时代背景与意义 二、大数据:水利管理的数据基石 (一)数据收集与整合 (二)数据分析与挖掘 三、物联网:水利管理的感知神经 (一)智能感知与监…

ONLYOFFICE 8.1版本版本桌面编辑器测评

ONLYOFFICE官网链接:ONLYOFFICE - 企业在线办公应用软件 | ONLYOFFICE ONLYOFFICE在线办公套件:在线办公套件 | ONLYOFFICE ONLYOFFICE在线PDF编辑器、阅读器和转换器:在线PDF查看器和转换器 | ONLYOFFICE ONLYOFFICE 8.1版本桌面编辑器是…

Java面试之缓存中间件常见面试题

1. 请简述什么是缓存以及为什么需要使用缓存? 缓存是存储常用或临时数据的组件,用于提高数据访问速度。在Web应用中,缓存能够减少数据库访问次数,提高系统响应速度和吞吐量,从而提升用户体验和系统稳定性。 2. 列举一…

开源可视化Flutter图表库:Graphic

Graphic:用Graphic绘制数据的无限可能- 精选真开源,释放新价值。 概览 Graphic,这个基于Flutter的图表库,以其源自《The Grammar of Graphics》的灵感,为数据可视化提供了一种全新的方法。它不仅仅是一个工具&#xf…

【Pytorch】RNN for Image Classification

文章目录 1 RNN 的定义2 RNN 输入 input, h_03 RNN 输出 output, h_n4 多层5 小试牛刀 学习参考来自 pytorch中nn.RNN()总结RNN for Image Classification(RNN图片分类–MNIST数据集)pytorch使用-nn.RNNBuilding RNNs is Fun with PyTorch and Google Colab 1 RNN 的定义 nn.…

【ECCV 2024】首个跨模态步态识别框架:Camera-LiDAR Cross-modality Gait Recognition

【ECCV 2024】首个跨模态步态识别框架:Camera-LiDAR Cross-modality Gait Recognition 简介:主要方法:实验结果: 论文:https://arxiv.org/abs/2407.02038 简介: 步态识别是一种重要的生物特征识别技术。基…

算法力扣刷题记录 四十一【N叉树遍历】

前言 依然是遍历问题。由二叉树扩展到N叉树遍历。 记录 四十一【N叉树遍历】 一、【589. N叉树的前序遍历】 题目 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔…

解锁SQL Server的迷宫:深入死锁的诊断与解决之道

解锁SQL Server的迷宫:深入死锁的诊断与解决之道 在数据库的世界中,死锁是一种常见的现象,它发生在两个或多个事务在访问资源时相互等待对方释放锁,从而导致无法继续执行的情况。SQL Server作为一种广泛使用的数据库管理系统&…

第十八章 Express multer 文件上传

本章将学习Express multer 文件上传 ,因为Nest 的文件上传是基于 Express 的中间件 multer 实现的,所以在学习 Nest 文件上传之前,我们先学习下 multer 包 首先先创建 multer-test 文件夹执行下面代码 创建package.json npm init -y接着安装…

深入浅出 Spring @Async 异步编程的艺术

目录 一、异步编程 二、Async 介绍 2.1 Async 使用 三、Async 原理 一、异步编程 在软件开发中,异步编程是非常关键的,尤其是构建高性能、高响应度的应用时。异步编程的主要优势在于它能够避免阻塞操作,提高程序的效率和用户体验。异步编…

修BUG:程序包javax.servlet.http不存在

貌似昨晚上并没有成功在tomcat上面运行,而是直接运行了网页。 不知道为啥又报错这个。。。 解决方案: https://developer.baidu.com/article/details/2768022 就整了这一步就行了 而且我本地就有这个tomcat就是加进去了。 所以说啊,是不是&a…