news 2026/2/7 14:48:26

JavaWeb_Maven

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaWeb_Maven

Maven

Maven是一款用于管理和构建Java项目的工具。

Maven概述

Maven的作用:

①依赖管理:方便快捷地管理项目依赖的资源(jar包)

在pom.xml中配置好jar包的信息后,maven会自动下载jar包,并且加入到当前的这个项目中。

②项目构建:标准化的跨平台(Linux、Windows、MacOS)的自动化项目构建方式

Maven提供项目构建的指令可以快速地对项目进行编译、测试、打包等操作

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

(所有的开发工具用maven构建出来的项目结构都是统一的)

Maven的结构:

Maven由项目对象模型(POM)、依赖管理模型(Dependency)、构建生命周期/阶段(Build lifecycle & phases)三大部分组成。

POM.XML中定义了一小段描述信息来描述项目的构建。在XML配置文件当中配置了项目对象模型POM,也配置了依赖管理模型Dependency

其中项目对象模型主要来描述当前这个maven项目的信息;配置好依赖信息后,maven会去仓库里面查找这个jar包。Maven的仓库用于存储和管理各种jar包

本地仓库:自己计算机上的一个目录。

中央仓库:由Maven团队维护的全球唯一的。

远程仓库(私服):一般由公司团队搭建私有仓库

Maven的安装

Welcome to Apache Maven – Maven

测试:命令行输入mvn -v查看maven的版本号

IDEA集成Maven

配置Maven环境(全局):

创建Maven项目:

maven项目的目录结构

运行项目的过程当中,目录结构多了一个target目录,这个target目录下存放的是编译后的字节码文件以及打包后的jar包文件

运行时自动地对项目进行编译并将编译后的字节码文件放在了target下的classes这个目录下。

Maven坐标:

Maven中的坐标是资源(jar)的唯一标识,通过该坐标可以唯一定位资源位置

使用坐标来定义项目引入项目中需要的依赖

Maven坐标主要组成:

groupId:定义当前Maven项目隶属组织名称(通常是域名反写)

artifactId:定义当前Maven项目名称(通常是模块名称)

version:定义当前项目版本号

SNAPSHOT:功能不稳定,处于开发中的版本即快照版本。

RELEASE:功能趋于稳定,当前更新停止,可以用于发行的版本。

导入Maven项目:

先将maven项目的文件夹复制出来,粘贴到目标项目的目录下。此时文件夹已经在项目目录中显式出来了,但是它并不识别这是一个maven项目,这就需要上图的两种方式来导入了。

依赖管理

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

依赖的配置

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

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

定义坐标的groupId,artifactId,version

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

依赖的坐标信息,可以在Maven Repository: Search/Browse/Explore中搜索

Maven有依赖传递的特性:如果A依赖了B,B依赖了C,C依赖了D,那么在项目中引入了A以后,BCD是默认会传递下来的

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

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

Maven构建生命周期的各个阶段,底层都是通过一个一个的插件来完成的

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

clean清理工作

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

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

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

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

安装(install):安装项目到本地仓库

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

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

命令行中,通过命令执行。命令的格式:mvn 生命周期的阶段

重点关注生命周期中的五个阶段:clean、compile、test、package、install

单元测试

测试:是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程

测试阶段存在于软件开发的各个阶段,根据阶段的不同,测试分为四种:单元测试、集成测试、系统测试、验收测试

单元测试的目的:检验软件基本组成单位通常指方法)的正确性。测试人员:开发人员最小测试单位 (白盒测试)

集成测试将已分别通过测试的单元,按设计要求组合成系统或子系统,再进行测试。目的:检查单元之间的协作是否正确。 测试人员:开发人员 (灰盒测试)

系统测试对已经集成好的软件系统进行彻底的测试。目的:验证软件系统的正确性、性能是否满足指定的要求。 测试人员:专业的测试人员 (黑盒测试)

验收测试也称交付测试,是针对用户需求、业务流程进行的正式的测试。目的:验证软件系统是否满足验收标准。 测试人员:客户/需求方 (黑盒测试)

测试的方法:白盒测试、黑盒测试及灰盒测试

白盒测试:清楚软件内部结构、代码逻辑。用于验证代码、逻辑正确性

黑盒测试:不清楚软件内部结构、代码逻辑。用于验证软件的功能、兼容性等方面。

灰盒测试:既关注软件的内部结构又考虑外部表现功能)。

使用Junit对业务方法进行单元测试:

①在pom.xml中,引入Junit的依赖

②在test/java目录下,创建测试类,并编写对应的测试方法,并在方法上声明@Test注解

单元测试方法运行不报错,不代表业务方法没问题。Junit提供了一些辅助方法帮我们确定被测试的方法是否按照预期的效果正常工作,这种方式称为断言

上述方法形参中的最后一个参数msg,表示错误提示信息,可以不指定

Junit常见注解:

JUnit单元测试的方法,可以通过参数化测试来声明方法形参@ParameterizedTest + @ValueSource

单元测试-企业开发规范:编写测试方法时,要尽可能地覆盖业务方法中所有可能的情况(尤其是边界值)。

借助idea当中的覆盖率可以判断单元测试有没有覆盖到业务方法所有可能出现的情况

基于通义灵码自动生成单元测试

依赖范围

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

作用范围:

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

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

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

当运行maven中test生命周期的阶段时,当前项目中所有规范的单元测试都会运行。规范指类名最后以Test结尾

Maven常见问题的解决方案:

重新加载依赖,依赖下载之后,maven面板如果还报红,此时可以关闭IDEA,重新打开IDEA加载此项目即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 22:06:54

如何将Open-AutoGLM操作延迟降低85%?资深架构师亲授调优心法

第一章&#xff1a;Open-AutoGLM操作延迟降低方案在高并发场景下&#xff0c;Open-AutoGLM 模型推理服务常面临显著的操作延迟问题。为提升响应效率&#xff0c;需从模型优化、请求调度与系统资源配置三个维度综合施策。异步批处理机制 启用异步批处理可显著减少单个请求的平均…

作者头像 李华
网站建设 2026/2/7 6:49:11

从入门到精通:掌握Open-AutoGLM推理优化的7个关键步骤

第一章&#xff1a;Open-AutoGLM推理优化概述Open-AutoGLM 是一个面向大规模语言模型推理的开源优化框架&#xff0c;专注于提升生成式语言模型在实际部署中的响应速度与资源利用率。该框架结合了动态批处理、内存优化、计算图融合等核心技术&#xff0c;显著降低了推理延迟并提…

作者头像 李华
网站建设 2026/2/5 19:20:45

【Open-AutoGLM macOS适配终极指南】:手把手教你完成全流程配置与优化

第一章&#xff1a;Open-AutoGLM macOS 适配设置为在 macOS 平台上顺利运行 Open-AutoGLM&#xff0c;需完成环境依赖配置、系统权限调整及框架兼容性适配。以下为关键设置步骤与推荐配置。环境准备 Open-AutoGLM 依赖 Python 3.10 与 Homebrew 管理的系统级工具。建议使用 pye…

作者头像 李华
网站建设 2026/2/6 6:46:24

【Open-AutoGLM语义解析突破】:准确率提升35%背后的核心技术揭秘

第一章&#xff1a;Open-AutoGLM语义解析准确率提升的背景与意义 在自然语言处理领域&#xff0c;语义解析作为连接人类语言与机器理解的核心桥梁&#xff0c;其准确性直接影响智能问答、代码生成和自动化推理等下游任务的表现。Open-AutoGLM作为一个开源的通用语言模型框架&am…

作者头像 李华
网站建设 2026/2/6 9:58:56

为什么顶尖团队都在用Open-AutoGLM做高效特征提取?真相曝光

第一章&#xff1a;Open-AutoGLM特征提取效率提升的行业背景随着人工智能在工业、金融、医疗等领域的深度渗透&#xff0c;大规模语言模型驱动的自动化系统对特征提取效率提出了更高要求。传统特征工程依赖人工设计与领域知识&#xff0c;耗时且难以适应动态数据环境。在此背景…

作者头像 李华
网站建设 2026/2/6 9:58:23

【AI模型预处理新纪元】:Open-AutoGLM如何实现毫秒级特征输出

第一章&#xff1a;Open-AutoGLM 特征提取效率提升在大规模语言模型驱动的自动化系统中&#xff0c;特征提取的效率直接影响整体推理速度与资源消耗。Open-AutoGLM 通过引入动态稀疏注意力机制与分层特征缓存策略&#xff0c;显著优化了文本特征的提取过程。该架构能够在不损失…

作者头像 李华