Maven
概述
1.基本信息

项目对象模型:
①
②
依赖管理模型:
dependency
2.安装步骤

①解压Maven文件:
这里我解压到的位置是:D:\develop(注意:目录不要带空格)
②配置本地仓库:
在你的maven目录中新建一个mvn_repo(指定为Maven的本地仓库)
然后修改maven的配置文件,打开conf文件中的settings.xml(打开方式不要选记事本,此处我选择的是vs code),然后找到
|
|
将其复制粘贴到注释之外,接着往下拉,找到mirror标签(不是mirrors),将原本的内容删除,配置阿里云的私服地址:
|
|
③配置环境变量
打开系统属性 -> 环境变量 -> 新建 -> 变量名:MAVEN_HOME,值为你所下载的maven的位置,接着在PATH路径中添加%MAVEN_HOME%\bin
全部点击确定以后打开cmd输入mvn -v,若出现以下样式,则说明安装成功了

IDEA集成Maven项目
1.创建Maven项目



完成以上全局配置(注意:是全局配置):首先点击close-project,再点击Customizs,接着点击All settings即可进入到全局配置
创建模块,选择new module,填写模块信息,选择构建工具为Maven,点击create,创建完成
2.Maven坐标
概念:是资源(jar)的唯一标识,通过该坐标可以唯一定位资源位置
使用坐标来定义项目或引入项目中需要的依赖
主要组成:
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
- artifacId:定义当前Maven项目名称(通常是模块名称)
- version:定义当前版本号
SNAPSHOT:功能不稳定、尚处于开发中的版本,即快照版本RELEASE:功能趋于稳定、当前更新停止,可以用于发行的版本
3.导入Maven项目
方式一:File -> Project Structure -> Modules -> Import Module -> 选择maven项目的pom.xml
方式二:Maven面板 -> (Add Maven Projects) -> 选择maven项目的pom.xml
- 建议将要导入的maven项目复制到你的项目目录下
- 建议选择maven项目的pom.xml文件进行导入
依赖管理
1.依赖配置
①依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖
②配置:
1.在pom.xml中编写<dependencies>标签
2.在<dependencies>标签中使用<dependency>标签
3.定义坐标的groupId,artifactId,version
4.点击刷新按钮,引入最新加入的坐标
依赖坐标信息:https://mvnrepository.com/
③排除依赖:指主动断开依赖的资源,被排除的资源无需指定版本
<exclusions></exclusions>
2.生命周期
Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一
Maven中有三套相互独立的生命周期(Lifecycle):
- clean:清理工作
- default:核心工作,如:编译,测试,打包,安装,部署等
- site:生成报告、发布站点等
每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段

只需要知道标红的五个阶段即可
clean:移除上一次构建生成的文件compile:编译项目源代码test:使用合适的单元测试框架运行测试(junit)package:将编译后的文件打包,如:jar、war等install:安装项目到本地仓库
注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行
执行指定生命周期的两种方式:
- 在idea中,右侧的Maven工具栏,选中对应的生命周期,双击执行
- 在命令行中,通过命令执行
单元测试
1.测试
- 测试:是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程
- 阶段划分:单元测试、集成测试、系统测试、验收测试

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

单->白、集->灰、系->黑、验->黑
2.单元测试
- 单元测试:就是针对最小的功能单元(方法),编写测试代码及其正确性进行测试
- JUnit:最流行的java测试框架之一,提供了一些功能,方便程序进行单元测试(第三方公司提供)
main方法测试的弊端: ①测试代码与源代码未分开,难维护 ②一个方法测试失败,影响后面的方法 ③无法自动化测试,得到测试报告
Junit方法测试的好处:(推荐) ①测试代码与源代码分开,便于维护 ②可根据需要进行自动化测试 ③可自动化分析测试结果,产出测试报告
①在pom.xml中,引入JUnit的依赖
②在test/java目录下,创建测试类,并编写对应的测试方法,并在方法上声明@Test注解
③运行单元测试(测试通过:绿色,测试失败:红色)
注意:JUnit单元测试类命名规范为:XxxxxTest【规范】。JUnit单元测试的方法,必须声明为Public void【规定】:public void xxxx(){…}
断言

String msg:提示错误信息
最后一个用来判断抛出的异常与我期望的异常是否是一致的(出现异常时使用的断言)



注解
JUnit单元测试时通过参数化测试进行声明方法形参(@P+@V)

其中:第二个和第三个(P、V)搭配使用,两B和两A之间的区别:BE、AE的执行次数为:有N个测试方法就执行N次,BA和AA是:整个测试类只执行1次,BE、AE的核心作用:初始化/清理每个测试独有的资源,BA、AA:初始化/清理全局共享的静态资源
BA:


PV:

在测试过程中可以在测试前加上@DisplayName(),为测试添加说明
(下图为在@parameterizedTest前加上此注解的运行结果)

企业开发规范
- 原则:编写测试方法时,要尽可能的覆盖业务方法中所有可能的情况(尤其是边界值)。
依赖范围
在Maven项目中,test目录存放单元测试的代码可以放在main目录下,但是不规范,所以引入了依赖范围
- 依赖的jar包,默认情况下,可以在任何地方使用,可以通过
… 设置其作用范围。 - 作用范围:
- 主程序范围有效(main文件夹内)
- 测试范围有效(test文件夹范围内)
- 是否参与打包运行(package指令范围内)
例如:

如果在测试中想要跳过test测试,只需按图中所示禁用即可

Maven常见问题
Maven下载不下来


-
产生原因:由于网络不好,依赖没有下载完整导致的,在maven仓库中生成了xxx.lastupdate文件,该文件不删除,不会重新下载
-
解决方案:
1.根据maven依赖的坐标,找到仓库中对应的xxx.lastupdate文件,删除,删除之后重新加载项目即可
2.通过命令(del /s *.lastupdate)批量递归删除指定目录下的xxx.lastupdate文件,删除之后重新加载项目即可(建议)(在maven结构目录下)


(如果以上方法仍旧不行,那么重新打开项目,基本不会有问题)