
🚗🚗🚗🚗🚗🚗🚗 数据结构专栏🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗
🛹🛹🛹🛹🛹🛹🛹小知识总结分享🛹🛹🛹🛹🛹🛹🛹🛹🛹🛹
🚀🚀🚀🚀🚀🚀🚀题目历练场🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🚢🚢🚢🚢🚢🚢🚢功能包与集合类介绍🚢🚢🚢🚢🚢🚢🚢🚢🚢
🛞🛞🛞🛞🛞🛞🛞java EE🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞
文章目录
引言
- 今天给大家介绍一下maven和一些相关的操作,博客还是要手搓的,希望对大家有帮助.
- 我的导图

一、什么是maven
- Maven 就是一个Java 项目的 "大管家 + 自动下载工具"。
它到底是干嘛的?
- 以前写 Java 项目:要用很多第三方包(比如连接数据库、操作 Excel、发请求等)
咱们得自己去官网一个个下载 jar 包还要手动放到项目里版本不对、包冲突、少依赖,项目直接跑不起来,反正会有很多问题. - Maven 就在配置文件里写一句要什么包、什么版本,它就:
自动去网上下载所有需要的 jar 包
自动管理依赖(A 包需要 B 包,它会一起下)
统一管理项目结构(src 放代码,target 放编译结果)
一键编译、打包、运行、发布,不用你手动点来点去
基本架构

- 项目配置文件:pom.xml .里面写:项目名、版本、依赖哪些 jar、用什么插件

- 在配置好第三方文件后,maven会自动的去仓库中寻找并加载到当前项目中,如果本地仓库没有就是按照(远程仓库 ---> 中央仓库)的优先级进行下载到本地仓库.
- 处理配置文件 ,maven还引入了声明周期与插件.我们要先知道这些生命周期是考插件驱动的,后面会详细说生命周期~
二、坐标
上面咱们说了,通过maven可以自动通过仓库下载第三方依赖,这么多第三方依赖,是怎么确定哪一个的呢?
maven不仅可以快速加载配置好第三方依赖,还可以管理项目,其中就是设计了标签,这便签就是一个gps,添加几个特征就可以定义到唯一的一个第三方依赖.
- 坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置

- 依赖语法:
xml
<dependencies> <-- 依赖 !-- >
<-- 某一具体依赖 !-- >
<dependency>
<groupId>组织名</groupId>
<artifactId>项目名</artifactId>
<version>版本号</version>
</dependency>
<-- 某一具体依赖 !-- >
<dependency>
<groupId>组织名</groupId>
<artifactId>项目名</artifactId>
<version>版本号</version>
</dependency>
....
</dependencies>
三、配置依赖
配置依赖与删除依赖
上面我们介绍了依赖是通过坐标进行配置的,但是我们配置的依赖是有依赖性的,什么意思呢,打比方我配置的是一个蛋糕 ,但是蛋糕上还有草莓,巧克力...一些其他的也会跟着一起配置下来.
一般来说,这是没有啥问题的,但是想要移除应该怎么移除呢?可以通过exclusion 标签进行移除

xml
<dependency>
<groupId>你要引的包A</groupId>
<artifactId>xxx</artifactId>
<version>xxx</version>
<!-- 排除里面的某个依赖 -->
<exclusions>
<exclusion>
<groupId>要排除的包B</groupId>
<artifactId>要排除的包B</artifactId>
<!-- 注意:exclusion 不用写 version -->
</exclusion>
</exclusions>
</dependency>
四、 生命周期
啥是声明周期? 怎么可以理解成Maven 给 Java 项目定好的一套固定 "流水线"。从 "清理旧文件"→"写代码"→"编译"→"测试"→"打包"→"安装到本地"→"发布到服务器",一步接一步,按顺序走。
3套周期

重点了解:
- clean : 移除上一次构建生成的文件 ----->
- compile : 编译项目源代码 ----->
- test : 使用合适的单元框架进行测试 ---->
- package : 将编译后的文件打包 --->
- install : 安装项目到本地仓库
注意: 在同一个生命周期中,位于后面的操作需要依赖前面的操作,也就是也会执行前面的操作
五、单元测试
单元测试与Junit
先main方法中进行测试,当存在很多方法或者逻辑的时候其实我们是容易测试的,在maven中引入了单元测试.有啥特点呢?
- 不启动整个项目、不连数据库、不点界面
- 只测一个方法、一个小功能
- 运行飞快,秒出结果:成功 / 失败
存在一款第三方依赖Junit最常用的单元测试框架,我们也是通过坐标引入
-
依赖范围

- 规定测试类、测试方法怎么写
- 提供运行测试的能力
- 提供一堆断言方法判断结果对不对
断言
其实就是junit下面的一系列的测试方法.
常用方法

java
// 用户类
public class UserService {
/**
* 给定一个身份证号, 计算出该用户的年龄
* @param idCard 身份证号
*/
public Integer getAge(String idCard){
if (idCard == null || idCard.length() != 18) {
throw new IllegalArgumentException("无效的身份证号码");
}
String birthday = idCard.substring(6, 14);
LocalDate parse = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyyMMdd"));
return Period.between(parse, LocalDate.now()).getYears();
}
/**
* 给定一个身份证号, 计算出该用户的性别
* @param idCard 身份证号
*/
public String getGender(String idCard){
if (idCard == null || idCard.length() != 18) {
throw new IllegalArgumentException("无效的身份证号码");
}
return Integer.parseInt(idCard.substring(16,17)) % 2 == 1 ? "男" : "女";
}
}
下面在test包下通过断言生成测试方法
java
@Test
public void testGenderWithAssert(){
UserService userService = new UserService();
String gender =userService.getGender("100000200001013418");
//断言
Assertions.assertEquals("男", gender , "性别计算错误");
}

就是根据预测信息是不是相互适配,来返回相对性的提示信息,相比传统的还是更加模块的~
总结
这篇文章就先分享到这里了,希望对你有帮助~
- 我是Dylan,下次见~
-