Java Web-Maven
Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具
Maven的作用
1.依赖管理:方便快捷的管理项目依赖资源(jar包),避免版本冲突问题
我们有的项目需要大量的jar包,采用手动导包的方式非常繁琐,并且版本升级也不方便。当我们使用maven,只要创建maven工程,只需要在pom.xml配置文件中配置即可。
2.统一项目结构:提供标准,统一的项目结构
我们程序员使用的开发工具很多,但构建出来的项目目录结构有差异,使用Maven提供了标准的项目结构,这样不同开发工具开发的项目之间可以相互导入
pom.xml是maven的核心依赖,当前项目要导入的核心依赖都在里面
3.项目构建:提供便准跨平台的自动化项目构建方式
我们可以通过里面的指令快速完成清理,编译,测试打包等工作

Maven模型

各个插件就可以完成各种功能例如编译插件进行编译,打包阶段进行打包,而每部操作都会产生对应的文件,放在target目录下

项目对象模型是指在pom.xml文件中通过一小段配置信息来 描述这个工程,如下图标明了项目的组织,模块名称,版本。他们称为工程的坐标

当我们要关联jar包,就可以在xml文件当中添加依赖管理模型。在xml文件中用标签添加依赖
添加依赖之后,maven会自动到仓库查找依赖。首先到本地仓库查找,如果本地仓库没有,会连接中央仓库的jar包,下载到本地仓库。为了提高加载速度,还会引用公司自己搭建的仓库(私服),只要公司中有一个人用到了依赖,就会把依赖下载到私服中

仓库:是用于存储资源,管理各种jar包的

Maven安装
1.下载地址:Maven – Download Apache Maven
bin目录存放的是可执行文件,conf目录存放的是配置文件,lib里是存放的jar包资源

2.配置本地仓库:配置一个地址作为本地仓库用来存储下载的jar包资源
方法:修改conf/setting.xml中的<localRepsitory>为一个指定目录

3.配置私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签

4.配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量。


IDEA集成maven
配置maven环境
- 配置当前工程的maven环境
配置安装路径,xml文件和本地仓库
关联的jre是否是对应的版本
和配置java语言的字节码版本
- 配置全局maven环境工程
在主界面配置即可
IDEA创建maven项目
1.创建项目,选择maven Archetype,并修改 Archetype的值

2.填写坐标信息
坐标是资源的唯一标识,通过坐标可以定义资源的唯一位置
使用坐标来定义项目或引入项目中需要的依赖


导入maven项目
方式一:打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可。

如果点没有弹出对话框,点击Apperance勾选进行调出

方式二:模块中导入pom文件

依赖管理
依赖配置
依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
配置:
1. 在pom.xml中编写<dependencies>标签2. 在<dependencies>标签中 使用<dependency>引入坐标
3. 定义坐标的 groupld, artifactid, version
4. 点击刷新按钮,引入最新加入的坐标
第一次使用依赖可能未下载,需要点击刷新按钮刷新联网下载依赖
如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索。
依赖传递
依赖具有传递性,被依赖的资源如果依赖了其他资源,那么依赖的依赖也会导入
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。
依赖范围
依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope> ...< / scope>设置其作用范围
作用范围:
主程序范围有效。(main文件夹范围内)
测试程序范围有效。(test文件夹范围内)
是否参与打包运行。(package指令范围内)
生命周期
Maven中有3套相互独立的生命周期:
clean: 清理工作。
default:核心工作,如:编译、测试、打包、安装、部署等。
site:生成报告、发布站点等。
每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
lifecycle就是生命阶段。
我们来讲几个重要的生命阶段:
clean:移除上一次构建生成的文件
compile:编译项目源代码
test:使用合适的单元测试框架运行测试(junit)
package:将编译后的文件打包,如:jar、war等
install:安装项目到本地仓库
执行指定生命周期的方式:
在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。
相关文章:
Java Web-Maven
Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具 Maven的作用 1.依赖管理:方便快捷的管理项目依赖资源(jar包),避免版本冲突问题 我们有的项目需要大量的jar包,采用手动导包的方式非常繁琐,并且版本升级也…...
.Net 异步委托
委托的 BeginInvoke 方法和 EndInvoke 方法可以实现异步执行委托方法。这允许委托的方法在后台线程中执行,而不会阻塞当前线程。小编在之前的webform开发中遇到下载进度条卡死的问题就是用它解决的。 案例: namespace ConsoleApplication1 {class Progr…...
web前端面试题---->HTML、CSS
一.居中方法 block元素如何居中 margin:0 auto;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);flex布局: 对父元素操作 : justify-content:center; al…...
移动端Web笔记day03
移动 Web 第三题 01-移动 Web 基础 谷歌模拟器 模拟移动设备,方便查看页面效果,移动端的效果是当手机屏幕发生了变化,页面和页面中的元素也要跟着等比例变化。 屏幕分辨率 分类: 硬件分辨路 -> 物理分辨率:硬件…...
c++的学习之路:3、入门(2)
一、引用 1、引用的概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。 怎么说呢,简单点理解就是你的小名,家里人叫你小名&#…...
面试经典150题【91-100】
文章目录 面试经典150题【91-100】70.爬楼梯198.打家劫舍139.单词拆分322.零钱兑换300.递增最长子序列77.组合46.全排列39.组合总和(※)22.括号生成79.单词搜索 面试经典150题【91-100】 五道一维dp题五道回溯题。 70.爬楼梯 从递归到动态规划 public …...
在 nginx 中使用 JavaScript
前些日子尝试了在 nginx 中写 JavaScript 的效果。考虑到 JavaScript 作为编程语言不是强需求,在nginx生态上还是 lua 独大,并且还有 openresty 这样一直强力输血,大部分应用场景都能找到参考的解决方案。 插件生态来说,github 上…...
【pytorch】安装合集
使用conda或者pip安装的指令 https://pytorch.org/get-started/previous-versions/ 测试pytorch_gpu是否可用的代码 # 测试pytorch是否安装成功 import torch print(torch.__version__) print(torch.cuda.is_available())...
【教程】PLSQL查看表属性乱码解决方法
一、前言 PL/SQL是Oracle数据库的编程语言,用于编写存储过程、触发器、函数等。 今天用plsql想查看表的属性,看看各个字段的注释,可是打开一看,居然是乱码的,如下面这样 如果在使用PL/SQL查看表属性时出现乱码&…...
新书速览|Django 5企业级Web应用开发实战:视频教学版
掌握Django框架开发技能,实战投票应用系统和内容管理系统 本书内容 《Django 5企业级Web应用开发实战:视频教学版》精选当前简单、实用和流行的Django实例代码,帮助读者学习和掌握Django 5框架及其相关技术栈的开发知识。本书系统全面、内容…...
excel创建和部分使用
一.excel导出是在开发中经常操作的内容,对于excel的导出也是有各种成熟的api组件 这里是最近的项目有通过ts处理,这里的内容通过ts ①引入const XlsxPopulate require("xlsx-populate"); const XLSXChart require("xlsx-chart"); 通过命令行操作, pnp…...
pycharm使用远程服务器的jupyter环境
1、确保服务器上安装了jupyter,如果没有,执行下面命令安装 pip install jupyter2、启动jupyter notebook服务 jupyter notebook --no-browser --port8888 --ip0.0.0.0 --allow-root表明在服务器的8888 端口上启动 Jupyter Notebook,并允许从任何 IP 地…...
ES6 基础
文章目录 1. 初识 ES62. let 声明变量3. const 声明常量4. 解构赋值 1. 初识 ES6 ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得」JavaScript语言可以用来编写复杂的大型应用程序,成为…...
【双指针】Leetcode 有效三角形的个数
题目解析 611. 有效三角形的个数 算法讲解 回顾知识:任意两数之和大于第三数就可以构成三角形 算法 1:暴力枚举 int triangleNumber(vector<int>& nums) {// 1. 排序sort(nums.begin(), nums.end());int n nums.size(), ret 0;// 2. 从…...
python项目练习——4.手写数字识别
使用Python和Scikit-learn库进行机器学习模型训练的项目——手写数字识别。 项目分析: 数据准备:使用公开数据集(如MNIST)作为训练和测试数据。数据预处理:对图像数据进行归一化、展平等操作,以便输入到机…...
【目标检测】NMS算法的理论讲解
将NMS就必须先讲IOU, IOU就是交并比,两个检测框的交集除以两个检测框的并集就是IOU 为什么要做NMS操作,因为要去除同一个物体的多的冗余检测框 那么NMS算法是如何做的呢? 以上是算法的流程图 下面讲解算法的流程 首先输入是预…...
3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?
(1)iperf3简介 1.iperf3简介 2.用途(特点) 3.下载iperf3地址 (2)实战 1.iperf3参数 (1)通用参数(客户端和服务器端都是适用的) (2)客户端参数 实验1&…...
阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器
阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器是一种高级别的模拟设备,用于模拟太阳光的光谱、强度及照射角度,应用于太阳能电池板、光伏系统等领域的研究和测试。其参数包括光谱范围、光强度、光源、照射角度、均匀性和稳定性,可根据需求调整…...
jdk11中自定义java类在jvm是如何被查找、加载
yym带你了解jvm源码,openjdk11源码,java类jvm加载原理 jdk11中java类在jvm是如何被1查找、2加载 以下说明的是MiDept类是如何被java classloader 和 jvm加载步骤 上源代码 public static void main(String[] args) {Thread.currentThread().setName…...
单片机---独立按键
[3-1] 独立按键控制LED亮灭_哔哩哔哩_bilibili 按下的时候连接,松开的时候断开。 一头接GND(电源负极),另一头接I/O口。 单片机上电时,所有I/O口为高电平。 按键没有按下,I/O口为高电平。 按键按下&…...
2026实测:宁波初一数学小升初本土品牌深度拆解
在宁波,几乎每一位小升初、中考、高考的家长都绕不开一个共同情绪——焦虑。镇海、海曙、鄞州等教育强区的竞争热度连年不减,优质初中与重点高中的入学门槛水涨船高,而面对纷至沓来的教培选择,家长们却常常陷入两难:全…...
写作压力小了!盘点2026年人气爆表的AI论文平台
一天写完毕业论文在2026年已不再是天方夜谭。2026年AI论文平台强势来袭,实测提速效果炸裂,覆盖选题构思、文献综述、降重润色、格式排版等核心场景,助你高效搞定论文,告别熬夜赶稿! 一、全流程王者:一站式搞…...
STM32 HAL库驱动NRF24L01避坑指南:SPI时钟配置、引脚命名那些容易出错的地方
STM32 HAL库驱动NRF24L01实战避坑手册:从SPI配置到中断处理的深度解析 当你在深夜的实验室里盯着示波器上杂乱的SPI波形,或是面对编译器抛出的"undefined reference"错误时,是否曾怀疑过NRF24L01这个看似简单的2.4GHz射频模块为何如…...
AI 教研科研一体化平台,以智能技术打通高校教研发展新路径
当前高校教学与科研工作普遍存在脱节割裂的问题,教学、教研、科研各成体系,资源分散、流程独立、数据不通。传统模式下,教师备课教学、课题研究、成果沉淀依靠人工完成,存在资源复用率低、科研选题盲目、教研过程无溯源、成果转化…...
通过Taotoken接入Claude Code解决编程助手Token不足与封号困扰
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken接入Claude Code解决编程助手Token不足与封号困扰 许多开发者将Claude Code作为日常编程的得力助手,用于代…...
二刷hot100-226.翻转二叉树
还是用层序遍历,内存循环在将左右节点入队后,置换左右节点:/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this…...
JavaScript 与 TypeScript:前端双巨头深度对比,一文看懂选谁更合适
引言 在前端开发的浩瀚星空中,JavaScript 与 TypeScript 无疑是两颗最耀眼的明星。一位是统治 Web 二十余年的“原生王者”,另一位则是近年来席卷生态的“静态类型新贵”。对于初学者、项目负责人乃至资深开发者而言,面对技术选型时ÿ…...
解锁ARM64虚拟化潜能:Proxmox VE在ARM平台的完整部署与优化实战
解锁ARM64虚拟化潜能:Proxmox VE在ARM平台的完整部署与优化实战 【免费下载链接】Proxmox-Arm64 Proxmox VE & PBS unofficial arm64 version 项目地址: https://gitcode.com/gh_mirrors/pr/Proxmox-Arm64 你是否曾经想过在树莓派、Rockpi或鲲鹏服务器上…...
微软Windows拆分:云AI战略转型下的业务重构与行业影响
1. 从“巨无霸”到“手术台”:微软拆分的深层逻辑与行业变局最近几年,关于微软可能进行业务拆分的讨论,就像科技行业的“月经帖”,每隔一段时间就会冒出来。但这一次,市场的风声似乎比以往任何时候都要紧。从“拆分Win…...
普通人必学!巧用 AI 轻松提升日常办事效率
一、为什么现在必须学会用 AI?先说一个事实:2025 年以来,国内大模型赛道迎来了爆发式增长。DeepSeek 横空出世,以极高的性价比引发全行业关注;字节跳动的豆包、月之暗面的 Kimi、阿里的通义千问、百度的文心一言等产品…...












