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依赖,可以优化项目依赖结构等,

相关推荐
Flynt2 分钟前
OpenJDK禁AI代码半年了,现在执行得怎么样?答案是:全靠自觉
java·开源·ai编程
IT_陈寒4 小时前
用了Proxy才发现以前的JavaScript白写了
前端·人工智能·后端
唐青枫4 小时前
别把 ArrayList 当成会自动管理内存的 List:Zig 动态数组从入门到实战
后端
鸿蒙开发4 小时前
我为 HarmonyOS 做了一个统一大模型 SDK:@hmkit/ai 正式开源
后端
猪是念来过倒4 小时前
Semaphore 与 RateLimiter:并发控制双雄详解
后端
掘金者阿豪5 小时前
异构数据同步最怕什么?不是同步慢,而是数据对不上
后端
古法安卓5 小时前
Android-日志系统源码解析
android·java·android studio
程序员cxuan6 小时前
Claude 官方的学习教程,太强了。
人工智能·后端·程序员
老孙讲技术6 小时前
把工地遮挡和掉线接进项目部:setMessageCallback 订 alarm 与 deviceStatus
后端·物联网·音视频开发
老孙讲技术6 小时前
关店后有人进门,监控值班群却没响:用 setMessageCallback 订 human,再用 aiHuman 打开人形
后端·物联网·音视频开发