您现在的位置是:首页 >技术教程 >maven核心功能——依赖和构建管理网站首页技术教程

maven核心功能——依赖和构建管理

南星沐 2026-03-23 12:01:04
简介maven核心功能——依赖和构建管理

依赖管理和配置

依赖信息查询方式

1/官网查询:https://mvnrepository.com/

2/插件查询 

选择copy of maven ,dependency 信息已经在粘贴板中

版本号也可提取成公共变量,放在 properties 中

scope的用法

因为test注解使用的junit依赖,限制了只能在main中使用,所以在test中无法使用@Test注解

依赖传递和冲突

依赖传递

  项目中,需要导入jackson相关的依赖,通过之前导入经验,jackson需要导入三个依赖,分别为:

  通过查看网站介绍的依赖传递特性:data-bind中,依赖其他两个依赖

  最佳导入:直接可以导入data-bind,自动依赖传递需要的依赖

依赖冲突

maven发现已经存在依赖会终止依赖传递,避免循环依赖和重复依赖的问题

依赖冲突发生的场景:

A 依赖 B 1.0 版本

C 依赖 B 2.0 版本

那maven引入的B依赖到底是哪个版本的呢

解决依赖冲突(如何选择重复依赖)方式:
  1. 自动选择原则
      - 短路优先原则(第一原则)

          A—>B—>C—>D—>E—>X(version 0.0.1)

          A—>F—>X(version 0.0.2)

          则A依赖于X(version 0.0.2)。
      - 依赖路径长度相同情况下,则“先声明优先”(第二原则)

          A—>E—>X(version 0.0.1)

          A—>F—>X(version 0.0.2)

          在<depencies></depencies>中,先声明的,路径相同,会优先选择!

小思考:

前提: A 1.1 -> B 1.1 -> C 1.1             F 2.2 -> B 2.2    pom声明了: F 2.2    A 1.1    B 2.2

那么maven引入的依赖有哪些?

F 2.2  A 1.1  B 2.2。没有C 1.1,因为在B 1.1依赖冲突时,后续的依赖传递全部终止

依赖导入失败场景和解决方案

1/网络故障或仓库宕机

2/依赖名称或版本号问题

3/本地maven仓库或缓存被污染,导致 Maven 无法正确地使用现有的依赖项,并且也无法重新下载!——解决方式:删除污染文件,位置就是groupId中显示的位置,发现内部包含.lastupdated结尾的文件删除即可

bat脚本使用:

maven_clean.bat 

使用记事本打开
set REPOSITORY_PATH=D:
epository  改成你本地仓库地址即可!
点击运行脚本,即可自动清理本地错误缓存文件!!

 构建管理和插件配置

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。