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

相关推荐
程序猿小D4 分钟前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的个人财务管理系统,推荐!
java·数据库·mysql·spring·毕业论文·ssm框架·个人财务管理系统
清木青青30 分钟前
maven中的scope理解,你学会了吗?
maven
jack_yin32 分钟前
Telegram DeepSeek Bot 管理平台 发布啦!
后端
小码编匠38 分钟前
C# 上位机开发怎么学?给自动化工程师的建议
后端·c#·.net
库森学长39 分钟前
面试官:发生OOM后,JVM还能运行吗?
jvm·后端·面试
转转技术团队41 分钟前
二奢仓店的静默打印代理实现
java·后端
蓝易云41 分钟前
CentOS 7上安装X virtual framebuffer (Xvfb) 的步骤以及如何解决无X服务器的问题
前端·后端·centos
钢铁男儿1 小时前
C# 接口(什么是接口)
java·数据库·c#
丶小鱼丶1 小时前
排序算法之【归并排序】
java·排序算法
上上迁1 小时前
分布式生成 ID 策略的演进和最佳实践,含springBoot 实现(Java版本)
java·spring boot·分布式