Maven的依赖管理

maven相关依赖的官网:https://mvnrepository.com/

pom.xml是项目依赖的配置文件

maven首先会去本地仓库下载相关依赖,如果没有,则会去中央仓库或镜像下载。

自定义properties,可使用${}将属性作为变量引入

xml 复制代码
<properties>
	<junit.version>5.10.2</junit.version>
</properties>
<dependencies>
	<dependency>
		<groupId>org.junit.jupiter</groupId>
		<artifactId>junit-jupiter-api</artifactId>
		<version>${junit.version}</version>
		<scope>test</scope>
	</dependency>
</dependencies>

依赖范围scope

依赖范围 说明
compile 编译依赖范围。默认值,在编译、测试、运行环境下都可使用。依赖关系中可以进行传递
test 测试依赖范围。只有在测试环境下可用,比如:junit
provided 已提供依赖范围。在编译、测试环境下可用,比如:servlet-api(在服务器端已提供此jar包,不需要在运行时再次引入)
runtime 运行时依赖范围。在测试、运行环境下可用,比如:jdbc
system 系统依赖范围。在编译、测试环境下可用,需指定本地依赖路径,可移植性变差,不推荐使用
import 导入依赖范围。

依赖传递原则

  1. 只有当依赖是compile时,才可向上传递
  2. 强制中止依赖传递:<optional>true</optional>

依赖冲突原则

  1. 路径最短优先原则
    当A依赖B,B依赖Druid-1.2.7,A依赖Druid-1.2.8,则优先使用Druid-1.2.8

  2. 当路径长度相同,先声明优先原则
    当A依赖B,B依赖Druid-1.2.7,A依赖C,C依赖Druid-1.2.8,则按照B、C在dependencies中的顺序决定

  3. 手动依赖排除,exclusions
    手动排除的依赖,不会向上传递

    xml 复制代码
    <dependency>
    	<groupId>com.wyt.maven</groupId>
        <artifactId>maven_c</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
       		<exclusion>
          		<groupId>com.alibaba</groupId>
           		<artifactId>druid</artifactId>
         	</exclusion>
        </exclusions>
    </dependency>
相关推荐
知行合一。。。8 小时前
RAG--03--Milvus基本用法
数据库·oracle·milvus
2601_962071578 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
TDengine (老段)8 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
zww89491119 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
上学的小垃圾10 小时前
01-数据库系统概述
数据库
二进制漫游记10 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
2501_9289962210 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
zww894911112 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
泡干脆面就番茄12 小时前
MySQL_子查询_分页查询与联合查询详解
数据库·mysql
黑马程序员毕设13 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设