Maven 依赖范围(Scope)

前言

在 Maven 中,依赖范围(Scope)用于控制依赖在不同构建阶段的可用性,以及依赖是否会被传递到其他项目中。合理设置依赖范围可以优化项目结构、减少冲突,并确保构建的可重复性

Scope设置

compile

对于maven中,如果没有指定,默认使用该依赖范围,编译、测试、运行阶段均可用,打包时包含,并且具有传递性,如,定义一个项目

加入依赖

在其他项目中引入包

发现fastjson可以传递

provided

编译和测试阶段可用,在运行时,由容器提供,包是没有传递性的

引入到其他项目,fastjson没有引入

runtime

运行和测试阶段需要,但是编译住阶段不需要,但是具有传递性,如jdbc场景

test

仅测试阶段可用,编译和运行阶段不需要

import

import在于导入其他 pom 的依赖管理配置,多用于dependencyManagement

system

系统依赖范围,多用于引用本地依赖

但是这种不推荐,尽量使用远程仓库,除非没有把包deploy到远程仓库

范围 编译期 测试期 运行期 打包时 传递性
compile
provided
runtime
test
system
import 特殊

总结

合理使用maven依赖,可以优化项目依赖结构等,

相关推荐
做个文艺程序员4 小时前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus
FF2501_940228584 小时前
Grid 构建月历网格:7 列模板 + 日期占位算法
后端·华为·harmonyos·鸿蒙系统
神奇小汤圆4 小时前
线程池的 DiscardPolicy 为什么是「静默杀手」?一个生产事故的完整复盘
后端
大鸡腿同学4 小时前
个人博主 AI 剪辑实操:口播视频 3 步出片,省 80% 剪辑时间
后端
小钻风33664 小时前
Spring Boot 文件上传详解:深入理解 MultipartFile 的使用与原理
java·开发语言
其美杰布-富贵-李4 小时前
Spring Boot 工程开发全流程说明
java·spring boot·后端
xianjixiance_5 小时前
HarmonyOS应用开发实战:萌宠日记 - 整体架构设计与技术选型解析
后端
掘金者阿豪5 小时前
数据库优化器到底在想什么:一个SQL今天能跑明天崩的背后
后端
b130538100495 小时前
HarmonyOS应用开发实战:萌宠日记 - 回调函数模式
后端
Conan在掘金5 小时前
鸿蒙报错速查:Cannot find name 'image',忘 import 编译就炸,根因 + 真解法
后端