Maven项目管理工具入门:pom.xml配置、依赖管理与生命周期详解

Maven项目管理工具入门:pom.xml配置、依赖管理与生命周期详解
一.什么是Maven1.含义Maven是一款用于管理和构建Java项目的工具基于项目对象模型POM的概念通过一小段描述信息来管理项目的构建官网https://maven.apache.org/2.作用依赖管理方便快捷的管理项目依赖的资源jar包项目构建标准化的跨平台Linux、Windows、MacOs的自动化项目构建方式统一项目结构提供标准、统一的项目结构查找依赖jar的顺序是优先本地仓库本地仓库没有再去连接远程仓库私服如果都没有会去中央仓库下载3.安装二.IDEA集成Maven1.创建Maven项目注target这个目录下存放的是编译后的字节码文件以及打包后的架包文件2.坐标1什么是坐标Maven中的坐标是资源jar的唯一标识通过该坐标可以唯一定位资源位置使用坐标来定义项目or引入项目中需要的依赖2Maven坐标组成groupId定义当前Maven项目隶属组织名称通常是域名反写例如baidu.comartifactID定义当前Maven项目名称通常是模块名称例如order-service、goods-serviceversion定义当前项目版本号SNAPSHOT功能不稳定、尚处于开发中的版本即快照版本RELEASE功能趋于稳定、当前更新停止可以用于发行的版本3.导入Maven项目注意事项建议将要导入的Maven项目复制到你的项目目录下建议选择Maven项目的pom.xml文件进行导入三.依赖管理1.依赖配置依赖指当前项目运行所需要的jar包一个项目中可以引入多个依赖配置1.在pom.xml中编写dependencies标签2.在dependencies标签中使用dependency引入坐标3.定义坐标的groupIdartfactIdversion4.点击刷新按钮引入最新加入的坐标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加入scopetest/scope后在main编写测试代码会报错这样就进行了规范限制我们可以通过生命周期中的test来进行测试如果进行后续操作不想再进行测试可以点击鼠标点击的无符号名为跳过测试。五.Maven常见问题一般会因为网络不好遇到如上图这种下载下载不完全刷新之后还是没有用六.疑惑点在java的maven里面打包和jar包和install是什么意思打包Maven中的打包是将项目的源代码和资源文件进行编译、处理后生成可分发的文件格式的过程。Maven支持多种打包格式如JARJava Archive、WARWeb 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文件。installMaven的install是一个生命周期阶段执行mvn install命令时Maven会先完成package阶段的所有任务即进行项目的打包操作生成相应的JAR包或其他格式的包。然后将生成的包安装到本地的Maven仓库中。本地Maven仓库是开发者本地的一个目录用于存储已安装的Maven项目的包。安装到本地仓库后其他Maven项目可以通过在pom.xml文件中添加依赖声明来引用这个包方便在不同项目间共享代码和资源。例如如果要在另一个项目中使用之前安装的my - project - 1.0.0.jar只需在其pom.xml中添加如下依赖声明dependency groupIdcom.example/groupId !-- 实际的groupId -- artifactIdmy - project/artifactId version1.0.0/version /dependency