Maven生命周期

三套生命周期,项目清理,项目构建,项目生成

我们主要关注五个阶段

  • clean:移除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试
  • package:将编译后的文件打包,如:jar, war等
  • install: 安装项目到本地仓库


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

执行指定的生命周期

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

    clean:清理上一次项目构建产生的文件,也就是删除target目录。

compile:编译项目文件,放在target目录下

test:执行单元测试,稍后讲解

site :打包,生成jar包文件,放在target目录下

install:安装,将当前maven项目安装到我们的本地仓库

若想知道我们的项目安装到本地仓库什么位置了,就要先根据xml文件中的信息查找

如果你是默认的如上图,那么路径就是你的本地仓库文件夹下的org目录下的example目录下的maven_project01

例:"E:\maven\apache-maven-3.9.9\mvn_repo\org\example\maven_project01"

如果你进行了设置,如下:

那么本地位置就会在

...你的仓库\com\my_learn\maven_project01

注意,编者在第一次使用install时出现了报错(没有package),按照compile->package->install操作后就成功生成了jar包,但是在install时应该是会自动执行之前的所有操作的,编者clean后再次直接install也成功了,应该是偶然错误。

测试

测试是用来辅助鉴定软件正确性,完整性,安全性和质量的重要内容,因此重点讲解

测试方法又分为:白盒,黑盒,灰盒测试

  • 白盒测试:开发人员知道内部代码,可判断代码逻辑是否正确,验证代码
  • 黑盒测试:不清楚软件内部结构,用于验证软件功能和兼容性等
  • 灰盒测试:结合白盒和黑盒。

单元测试

针对最小的功能单元(比如一个方法)进行正确性测试。

JUnit是最流行的java测试框架之一,方便进行测试。

为何不在main方法直接跑》

  • 测试代码与源代码未分开,难维护
  • 一个方法测试失效,影响后面的方法
  • 无法自动化测试,得到测试报告


使用JUnit进行单元测试

下面以案例的形式进行讲解

  1. 在pom.xml中引入依赖
  2. 在test/java目录下创建测试类,并编写对应的测试方法,并在方法上声明@Test注解。
  3. 运行测试

注意:JUnit单元测试类命名必须以Test结尾,单元测试方法必须声明为public void

一图讲解:

如图,我们在main/java/com.huohuo包中编写好了待测试的代码UserService,并在test/java/com.huohuo包中编写好了测试程序,就是@Test注解下的测试方法,调用待测试的类方法。

此时,测试方法右边出现了绿色的小箭头,点击就能执行测试,测试成功就会显示如图的对勾。

那么有时候我们的方法没有报错,却有逻辑错误,比如1+1=3,那么如何测试出来呢

实际上断言测试就是以上固定的流程,可以辅助我们进行判断。

接下来我们看一看常见的注解

实际上这些注解和方法了解就行了,用的时候随时查。

最后是企业级开发的一些规范

企业开发规范

我们可以利用ai工具辅助生成专业的单元测试

Maven依赖范围

常见问题解决方案

end

下一节是web基础知识.

致谢 :本文参考黑马程序员的视频,本人也看过很多黑马程序员的视频,给我带来非常大的帮助。

https://www.bilibili.com/video/BV1yGydYEE3H/?vd_source=1b8f9bfb1d0891faf1c70d7678ae56db

相关推荐
LaoZhangAI6 分钟前
GPT-5推理能力全解析:o3架构、链式思考与2025年8月发布
前端·后端
海风极客8 分钟前
Go内存逃逸分析,真的很神奇吗?
后端·面试
寻月隐君23 分钟前
Rust 泛型 Trait:关联类型与泛型参数的核心区别
后端·rust·github
泥泞开出花朵25 分钟前
LRU缓存淘汰算法的详细介绍与具体实现
java·数据结构·后端·算法·缓存
玉树临风江流儿27 分钟前
QT收费情况
开发语言·qt
子洋32 分钟前
快速目录跳转工具 zoxide 使用指南
前端·后端·shell
ankleless44 分钟前
C语言(02)——标准库函数大全(持续更新)
c语言·开发语言·算法·标准库函数·零基础自学
七七软件开发1 小时前
团购商城 app 系统架构分析
java·python·小程序·eclipse·系统架构·php
七七软件开发1 小时前
打车小程序 app 系统架构分析
java·python·小程序·系统架构·交友