深入解析:JavaWeb零基础学习Day4——Maven

一.什么是Maven

1.含义

一款用于管理和构建Java项目的工具,基于项目对象模型(POM)的概念,通过一小段描述信息来管理工程的构建就是Maven

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

2.作用

  • 依赖管理:方便快捷的管理项目依赖的资源(jar包)
  • 项目构建:标准化的跨平台(Linux、Windows、MacOs)的自动化项目构建方式
  • 统一项目结构:提供标准、统一的项目结构

查找依赖(jar)的顺序是优先本地仓库,本地仓库没有再去连接远程仓库(私服),如果都没有会去中央仓库下载

3.安装

二.IDEA集成Maven

1.创建Maven项目

注:target这个目录下存放的是编译后的字节码档案以及打包后的架包文件

2.坐标

1)什么是坐标

  • Maven中的坐标是资通过源(jar)的唯一标识,通过该坐标能够唯一定位资源位置
  • 使用坐标来定义项目 or 引入项目中得的依赖

2)Maven坐标组成

groupId:域名反写,例如:baidu.com)就是定义当前Maven项目隶属组织名称(通常

artifactID:定义当前Maven项目名称(通常是模块名称,例如:order-service、goods-service)

version:定义当前项目版本号

  • SNAPSHOT功能不稳定、尚处于开发中的版本,即快照版本
  • RELEASE通过功能趋于稳定、当前更新停止,能够用于发行的版本

3.导入Maven项目

注意事项:

  • 建议将要导入的Maven方案复制到你的项目目录下
  • 建议选择Maven计划的pom.xml档案进行导入

三.依赖管理

1.依赖配置

依赖:指当前项目运行所需要的jar包,一个工程中能够引入多个依赖

配置:

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

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

3.定义坐标的groupId,artfactId,version

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

2.排除依赖

注意事项:

  • 一旦依赖配置变更了,记得重新加载
  • 引入的依赖本地仓库不存在,记得联网

3.生命周期

clean:清理工作

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

site:生成报告,发布站点等

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

四.单元测试

1.测试含义

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

阶段划分:单元测试、集成测试、系统测试、验收测试

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

2.快速入门

1)单元测试

单元测试:就是针对于最小的作用单元(方法),编写测试代码对其正确性进行测试

JUnit:最流行的Java测试框架之一,提供了一些功能,方便程序进行单元测试(第三方公司供应)

使用JUnit单元测试的优点:

1.测试代码与源代码分开,便于维护

2.可根据应该进行自动化测试,一个测试方法失败,不会影响其他测试方法

3.可自动分析测试结果,产出测试报告

main方法也行测试,但是存在弊端:

1.测试代码与源代码未分开,难以维护

2.一个方式测试失败,影响后面方式

3.无法自动化测试,得到测试报告

3.断言

在JUnit单元测试中,为什么要利用断言?

  • 单元测试方法运行运行不报错,不代表业务方法没困难。
  • 利用断言能够检测方法运行结果是否和预期一致,从而判断业务方法的正确性。
  • Assertions.assertXxxx(...)

4.Junit常见注解

注:@BeforeAll和@AfterAll这两个注解要修饰的技巧必须是static静态方法,否则会报错

5.企业开发规范

原则:编写测试方法时,要尽可能的覆盖业务方法中所有可能的情况(尤其是边界值)

在进行测试的同时计算测试覆盖率

Class:测试覆盖率

Method:业务方法覆盖率

Line:代码覆盖率

Branch:分支覆盖

通过同时能够基于AI,测试UserService中的getGender方法

阿里的通义灵码,点击之后AI会根据业务方法自动进行测试代码的编写就是主包使用的

6.Maven依赖范围

通过在Maven方案中,test目录存放单元测试的代码,可以在main目录中编写单元测试,但是不符合规范,所以能够对此作出限制。

注:我们主要关注compile和test

加入<scope>test</scope>后在main编写测试代码会报错,这样就进行了规范限制

我们可以通过生命周期中的test来进行测试,如果进行后续运行不想再进行测试可能点击鼠标点击的无符号,名为跳过测试。

五.Maven常见问题

一般会基于网络不好遇到如上图这种下载,下载不完全,刷新之后还是没有用

六.疑惑点

在java的maven里面打包和jar包和install是什么意思?

  • 打包:Maven中的打包是将项目的源代码和资源文件进行编译、处理后,生成可分发的文件格式的过程。Maven支持多种打包格式,如JAR(Java Archive)、WAR(Web Application Archive)等。打包过程由Maven的生命周期管理,通过执行特定的Maven命令(如mvn package)触发。打包会执行一系列的操作,包括编译Java源代码、处理资源文件、运行测试等,最终生成相应格式的文件,方便项目的部署和分发1

  • JAR包:JAR是Java Archive的缩写,它是一种基于ZIP格式的文件,用于将多个Java类文件、相关的资源文件(如配置文件、图片等)和元数据(如清单文件)组合成一个单一的文件。JAR包可以包含一个完整的Java应用程序、库或模块,方便在不同的项目中复用。在Maven项目中,JAR包通常是打包的默认输出格式,通过执行mvn package命令会在项目的target目录下生成一个以项目名称和版本号命名的JAR文件。例如,一个名为my - project、版本号为 1.0.0的项目,打包后会生成my - project - 1.0.0.jar文件。

  • install:Maven的install是一个生命周期阶段,执行mvn install命令时,Maven会先完成package阶段的所有任务,即进行项目的打包操作,生成相应的JAR包(或其他格式的包)。然后,将生成的包安装到本地的Maven仓库中。本地Maven仓库是开发者本地的一个目录,用于存储已安装的Maven项目的包。安装到本地仓库后,其他Maven项目可以通过在pom.xml文件中添加依赖声明来引用这个包,方便在不同项目间共享代码和资源。例如,如果要在另一个项目中使用之前安装的my - project - 1.0.0.jar,只需在其pom.xml中添加如下依赖声明:


    com.example 
    my - project
    1.0.0

posted @ 2025-11-25 19:27  clnchanpin  阅读(37)  评论(0)    收藏  举报