当前位置: 首页 > news >正文

Java Web —— 第四天(Maven)

Maven是什么

Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

POM (ProjectObject Model): 项目对象模型

Maven的作用

项目构建:提供标准的、跨平台的自动化项目构建方式

依赖管理:方便快捷的管理项目依赖的资源 (ar包),避免资源间的版本冲突问题

统一开发结构:提供标准的、统一的项目结构

Maven下载

官网: http://maven.apache.org/

下载地址: http://maven.apache.org/download.cgi

Maven安装

Maven属于绿色版软件,解压即安装

Maven环境变量配置

依赖Java,需要配置JAVA_HOME

设置MAVEN自身的运行环境,需要配置MAVEN_HOME

测试环境配置结果

MVN

Maven基础概念

仓库

用于存储资源,包含各种jar包

仓库:用于存储资源,包含各种iar包
仓库分类:
        本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源

        远程仓库:非本机电脑上的仓库,为本地仓库提供资源

        中央仓库:Maven团队维护,存储所有资源的仓库

        私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
私服的作用:

        保存具有版权的资源,包含购买或自主研发的iar

         中央仓库中的iar都是开源的,不能存储具有版权的资源

        一定范围内共享资源,仅对内部开放,不对外共享

配置Maven环境(当前工程)

选择IDEA中 File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven设置IDEA

使用本地安装的 Maven,并修改配置文件及本地仓库路径

配置Maven环境(全局)

 IDEA 创建 Maven 项目

1.创建模块,选择Maven,点击Next

2.填写模块名称,坐标信息,点击finish,创建完成

3.编写 HelloWorld,并运行

 

坐标

什么是坐标?

Maven中的坐标用于描述仓库中资源的位置

https://repo1.maven.org/maven2

Maven坐标主要组成

groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:orgmybatis)

artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)

version:定义当前项目版本号

找坐标

https://mvnrepository.com

Maven坐标的作用

使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

坐标的组成:组织ID 项目ID 版本号

Maven启动后,会自动保存下载的资源到本地仓库

默认位置

<localRepository>${user.home)/.m2/repository</localRepository>


当前目录位置为登录用户名所在目录下的.m2文件夹中

自定义位置

<localRepository>D:\studyApp\Maven\maven-repository</localRepository>

 

IDEA 导入 Maven 项目

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

如果没有看到

推荐将导入项目放同级目录

粘贴

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

Maven项目构建命令

Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔

mvn  compile        #编译
clean  mvn        #清理
test  mvn        #测试
mvn  package        #打包
mvn  install         #安装到本地仓库

依赖配置

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

配置:

1.在 pom.xml 中编写 <dependencies> 标签

2.在 <dependencies> 标签中 使用 <dependency> 引入坐标

3.定义坐标的 groupld,artifactld,version

4.点击刷新按钮,引入最新加入的坐标

<dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency></dependencies>

注意事项

如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程

比较耗时,耐心等待)

如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索

依赖传递

依赖具有传递性

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

 

依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过 <scope>...</ scope > 设置其作用范围作用范围:

主程序范围有效。 (main文件夹范围内)

测试程序范围有效。 (test文件夹范围内)

是否参与打包运行。(package指令范围内)

示例:

仅在单元测试中有效

生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

Maven中有3套相互独立的生命周期

clean:清理工作。

default: 核心工作,如: 编译、测试、打包、安装、部署等

site:生成报告、发布站点等。

每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段

注意事项

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行

执行指定生命周期的两种方式

在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。

在命令行中,通过命令执行。

如果想跳过某一阶段 只执行后面的操作:

代表跳过测试阶段

相关文章:

Java Web —— 第四天(Maven)

Maven是什么 Maven 的本质是一个项目管理工具&#xff0c;将项目开发和管理过程抽象成一个项目对象模型(POM) POM (ProjectObject Model): 项目对象模型 Maven的作用 项目构建:提供标准的、跨平台的自动化项目构建方式 依赖管理:方便快捷的管理项目依赖的资源 (ar包)&…...

2024年电脑录屏软件推荐:捕捉屏幕,记录生活,分享精彩

在众多电脑录屏软件中&#xff0c;如何挑选出一款适合自己的工具呢&#xff1f;今天&#xff0c;我们就来为大家对比评测四款热门电脑录屏软件&#xff1a;福昕REC、转转大师录屏、爱拍录屏和轻映录屏。通过对它们的功能、性能、操作便捷性等方面进行对比&#xff0c;帮助你找到…...

oracle 增删改查字段

在Oracle数据库中&#xff0c;对表字段的增删改查是数据库操作的基础。以下是关于Oracle中如何增加、删除、修改和查询字段的详细解释&#xff1a; 1. 增加字段&#xff08;Add&#xff09; 增加字段的语法为&#xff1a; ALTER TABLE 表名 ADD (字段名 数据类型 [DEFAULT 默…...

给不规则的shapeGeometry贴图

首先看一下贴图效果&#xff0c;我们要做的是将一个长方形的贴图在不规则的多边形中贴图 实现思路 1. 取不规则多边形的box2&#xff0c;这个box2就是整个贴图的UV坐标 2. 计算每个不规则的多边形顶点的在该box2上的对应映射 3. 更新整个geometry的uvs数据 怎么计算映射&…...

网络层IP协议报头字段的认识

认识IP协议 IP协议&#xff08;Internet Protocol&#xff09;&#xff0c;又称网际协议&#xff0c;是整个TCP/IP协议栈中的核心协议之一&#xff0c;位于网络层。IP协议是互联网中最基础的网络协议之一&#xff0c;负责在网络中传输数据包。它定义了数据包的格式、地址分配和…...

Linux部署MySQL8.0

目录 一、部署前准备1.1、查看系统版本和位数&#xff08;32位或64位&#xff09;1.2、下载对应安装包 二、开始部署1、将安装包解压并且移动到目标安装目录2、准备MySQL数据和日志等存储文件夹3、准备MySQL配置文件 my.cnf4、创建mysql单独用户组和用户&#xff0c;将安装目录…...

二叉树中的深搜

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1. 计算布尔二叉树的值 1.1 题目描述 1.2 题解 1.3 代码实现 2. 求根节…...

固态继电器行业知识详解

固态继电器&#xff08;SSR&#xff09;是一种通过电子元件来实现开关功能的器件&#xff0c;与传统的电磁继电器相比&#xff0c;它具有更高的可靠性、耐用性和响应速度&#xff0c;广泛应用于工业自动化、家用电器和各种电子控制系统中。本文将详细探讨固态继电器的工作原理、…...

【practise】数组中出现次数超过一半的数字

关于我&#xff1a; 睡觉待开机&#xff1a;个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想&#xff0c;就是为了理想的生活! 作者留言 PDF版免费提供&#xff1a;倘若有需要&#xff0c;想拿我写的博客进行学习和交流&#xff0c;可以私信我将免费提供PDF版。…...

RAGFlow v0.9 重磅升级,支持 GraphRAG,开启下一代 RAG 之旅!

一、引言 前面我们介绍过很多的关于大模型和RAG相关的技术&#xff0c;通过其关注程度足以看到市场上对RAG框架和成熟产品的迫切需求&#xff0c;因为想要个人独立从0开始实现一个RAG产品并非易事&#xff0c;虽然有相当多的RAG或者知识库开源产品&#xff0c;大部分其实很难应…...

MySQL的InnoDB的页里面存了些什么

文章目录 创建新表页的信息新增一条数据根据页号找数据信息脚本代码py_innodb_page_info根据地址计算页号根据页号计算起始地址 主要介绍数据页里面有哪些内容&#xff0c;一行数据在文件里面是怎么组织的 创建新表页的信息 CREATE TABLE test8 (id bigint(20) NOT NULL AUTO…...

SQL Server 事务

1. 什么是事务 SQL Server 事务是数据库操作的一个基本特性&#xff0c;它允许你将一系列数据库操作组合成一个原子单元&#xff0c;这个单元中的所有操作要么全部成功&#xff0c;要么全部失败。事务具有以下四个重要的属性&#xff0c;通常被称为ACID属性。 2、事务的特性 原…...

qt quick实现的水波纹特效:横向波纹、纵向波纹效果

qml实现的水波纹特效 1.横向波纹效果2.另一种效果&#xff08;纵向波纹&#xff09; 一直以来使用c qt如果要实现一些高级特效比如水波纹效果都难度比较大&#xff0c;但是使用qt quick难度就会小很多。这里借鉴一些网友的思路简单实现一下水波纹效果。主要思路就是波浪的形成是…...

释放数据要素价值,FISCO BCOS 2024 应用案例征集

2024年&#xff0c;国家数据局等17部门联合印发《“数据要素”三年行动计划&#xff08;2024—2026年&#xff09;》&#xff0c;《行动计划》指出&#xff0c;发挥数据要素的放大、叠加、倍增作用&#xff0c;构建以数据为关键要素的数字经济&#xff0c;是推动高质量发展的必…...

日撸Java三百行(day18:循环队列)

目录 一、顺序队列与循环队列 二、代码实现 1.循环队列创建 2.循环队列遍历 3.循环队列入队 4.循环队列出队 5.数据测试 6.完整的程序代码 总结 一、顺序队列与循环队列 在昨天&#xff0c;我们提到队列实现除了采用链式存储结构&#xff0c;还可以采用顺序存储结构&…...

论文精读1

Equivariant Pretrained Transformer for Unified Geometric Learning on Multi-Domain 3D Molecules 核心公式&#xff1a; 论文导图 创新在统一分子建模和块级去噪预训练。...

uniapp免费申请苹果证书教程每次7天可用于测试

准备一个苹果账号没有加入过任何组织的 然后下载appuploader下载链接 登录上去切记勾选上未付苹果688 然后点击苹果证书创建p12证书 创建描述文件 uniapp打包自定义基座 这就打包好了可以愉快地开发了&#xff0c;但每次生成只有7天&#xff0c;设备限制3个&#xff0c…...

【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏

摘要 气象数据分析在各行各业中扮演着重要的角色&#xff0c;尤其对于农业、航空、海洋、军事、资源环境等领域。在这些领域中&#xff0c;准确的气象数据可以对预测未来的自然环境变化和采取行动来减轻负面影响的决策起到至关重要的作用。 本系统基于Python Flask框架&#…...

eBPF编程指南(一):eBPF初体验

1 什么是EBPF&#xff1f; EBPF是一种可以让程序员在内核态执行自己的程序的机制&#xff0c;但是&#xff0c;为了安全起见&#xff0c;无法像内核模块一样随意调用内核的函数&#xff0c;只能调用一些bpf提前定义好的函数。为了让内核执行程序员自己的代码&#xff0c;需要指…...

pip笔记

pip介绍 pip的全称&#xff1a;package installer for python&#xff0c;也就是Python包管理工具。 配置镜像源 镜像列表 阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣 http://pypi.douban.com/simple/清华大…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...