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"。 图的划分定义为将图划分为一…

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

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

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

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

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

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

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

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

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

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

开源可视化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 分隔…

第十八章 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…

eNSP公司管理的对象及策略

拓扑图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 ) 实验需求 第一步:根据题目搭建拓扑图 其中交换机的型号为:S5700 防火墙设备为:USG6000V 第二步:启动防火墙设备 首先会让你输入密码,…

【MySQL】常见的MySQL日志都有什么用?

MySQL日志的内容非常重要,面试中经常会被问到。同时,掌握日志相关的知识也有利于我们理解MySQL 底层原理,必要时帮助我们排查解决问题。 MySQL中常见的日志类型主要有下面几类(针对的是InnoDB 存储引擎): 错误日志(error log):对 MySQL 的启…

CentOS 6.5配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路

CentOS 6.5比较古老的版本了&#xff0c;而还是有一些古老的项目仍然在使用。 环境说明 1. 更换国内在线yum源 CentOS 6 在线可用yum源配置——筑梦之路_centos6可用yum源-CSDN博客 cat > CentOS-163.repo << EOF [base] nameCentOS-$releasever - Base - 163.com …

新兴市场游戏产业爆发 传音以技术抢抓机遇 ​

随着年轻人口的增加以及互联网的普及,非洲、中东等新兴市场正迎来游戏产业的大爆发,吸引着全球游戏企业玩家在此开疆辟土。中国出海企业代表传音以新兴市场需求为中心,秉持本地化创新理念不断加强游戏等关键领域技术攻关凭借移动终端设备为全球玩家带来极致游戏体验,收获了消费…

就业平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;企业管理&#xff0c;企业类型管理&#xff0c;留言板管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;招聘信息&#xff0c;简历&#xff0c;我的…

MapReduce底层原理详解:大案例解析(第32天)

系列文章目录 一、MapReduce概述 二、MapReduce工作机制 三、Map&#xff0c;Shuffle&#xff0c;reduce阶段详解 四、大案例解析 文章目录 系列文章目录前言一、MapReduce概述二、MapReduce工作机制1. 角色与组件2. 作业提交与执行流程1. 作业提交&#xff1a;2. Map阶段&…

MATLAB中c2d函数用法

目录 语法 说明 示例 在MATLAB中&#xff0c;c2d函数用于将连续时间系统&#xff08;Continuous-Time System&#xff09;转换为离散时间系统&#xff08;Discrete-Time System&#xff09;。以下是c2d函数的基本语法、说明以及示例&#xff1a; 语法 sys_d c2d(sys_c, T…