Maven

Maven

概述

1.基本信息

项目对象模型:

1

2

依赖管理模型:

dependency

2.安装步骤

①解压Maven文件:

这里我解压到的位置是:D:\develop(注意:目录不要带空格

②配置本地仓库:

在你的maven目录中新建一个mvn_repo(指定为Maven的本地仓库)

然后修改maven的配置文件,打开conf文件中的settings.xml(打开方式不要选记事本,此处我选择的是vs code),然后找到

1
<localRepository>D:\develop.m2\apache-maven-3.9.11\mvn_repo</localRepository>

将其复制粘贴到注释之外,接着往下拉,找到mirror标签(不是mirrors),将原本的内容删除,配置阿里云的私服地址:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<mirror>

        <id>alimaven</id>

        <name>aliyun maven</name>

        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

        <mirrorOf>central</mirrorOf>

    </mirror>

③配置环境变量

打开系统属性 -> 环境变量 -> 新建 -> 变量名:MAVEN_HOME,值为你所下载的maven的位置,接着在PATH路径中添加%MAVEN_HOME%\bin

全部点击确定以后打开cmd输入mvn -v,若出现以下样式,则说明安装成功了

![](assets/mvn- v.png)

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结构目录下)

    el脚

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

本站于2026年3月31日建立
使用 Hugo 构建
主题 StackJimmy 设计