maven的optional和scope使用场景

news/2026/1/25 2:19:48/文章来源:https://www.cnblogs.com/jiapeiyao/p/19527999

1. optional 属性

可选值:

  • false(默认):依赖会传递

  • true:依赖不会传递

含义: 控制依赖是否会被传递到引用当前项目的其他项目中。

<optional>true</optional> 使用范围

场景 示例依赖 是否建议 optional 理由
核心工具(人人需要) jackson-databindslf4j-apicommons-lang3 不设 optional,避免所有使用者再手动声明
大体积可选功能 easyexcelpoi-ooxmlitext7-core 体积大、易冲突;仅部分用户需要
缓存/消息中间件 spring-boot-starter-redisspring-kafka 与业务场景绑定;非全局必需
数据源/连接池 druid-spring-boot-starterhikaricp 用户可能已有 preferred 实现
云厂商 SDK aliyun-oss-spring-boot-starteraws-java-sdk-s3 强耦合具体云产品;用户按需
序列化扩展 protobuf-javaavrokryo 多种实现可选,防止强制绑定
日志实现 logback-classiclog4j-slf4j-impl 应由最终应用决定具体实现
测试/开发工具 junitmockitospring-boot-devtools ❌(scope=test 即可) 测试范围天然不传递,无需 optional
多模块项目内部 子模块间依赖 内部模块明确需要,optional 会增加复杂度
独立 starter my-xx-spring-boot-starter ✅(内部 optional) starter 本身已聚合,内部功能依赖可 optional,实现“按需激活”

口诀:“核心不 optional,可选必 optional”
既不让使用者骂娘,也不污染他们的依赖树。

scope使用场景

场景 依赖 推荐 scope 理由
业务代码用 Jackson jackson-databind compile 编译、运行、打包都要
写 Servlet 控制器 jakarta.servlet-api provided Tomcat 已提供,避免冲突
连接 MySQL mysql-connector-j runtime 编译只认 JDBC 接口,运行才需具体驱动
单元测试 junit-jupiter test 仅测试阶段,生产无感
统一子模块版本 spring-boot-dependencies import 只管理版本,不引入 jar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1212081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业设计AI助手上线,Qwen-Image-Edit-2511来啦

工业设计AI助手上线&#xff0c;Qwen-Image-Edit-2511来啦 1. 这不是又一个“修图工具”&#xff0c;而是工业设计工作流的新搭档 你有没有遇到过这些场景&#xff1a; 产品结构图需要快速转成不同风格的展示稿&#xff0c;但每次重绘都要等设计师排期&#xff1b;客户临时要…

DeepSeek-R1 vs ChatGLM4轻量版:代码生成任务GPU效率对比

DeepSeek-R1 vs ChatGLM4轻量版&#xff1a;代码生成任务GPU效率对比 1. 为什么这场对比值得你花三分钟看完 你有没有试过在本地GPU上跑一个“能写代码”的小模型&#xff0c;结果等了两分钟才吐出一行Python&#xff1f;或者刚部署好服务&#xff0c;用户一并发请求&#xf…

Calibre中文路径保护插件技术解析:从拦截原理到深度配置

Calibre中文路径保护插件技术解析&#xff1a;从拦截原理到深度配置 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#xff09;命名 项目地址:…

OpenModScan:破解工业设备通讯难题的开源解决方案

OpenModScan&#xff1a;破解工业设备通讯难题的开源解决方案 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan 在工业自动化领域&#xff0c;设备通讯调试常常面临协议兼…

YOLOv11与Faster R-CNN对比:目标检测模型部署实测

YOLOv11与Faster R-CNN对比&#xff1a;目标检测模型部署实测 目标检测是计算机视觉中最基础也最实用的任务之一。当你需要让程序“看见”图像中的物体——比如识别画面里有几辆车、人在哪、货架上缺了什么货——你就绕不开它。但面对YOLO系列、Faster R-CNN、DETR、RT-DETR等…

如何用C工具实现JSX二进制转换?JSXBin高效解码解决方案

如何用C#工具实现JSX二进制转换&#xff1f;JSXBin高效解码解决方案 【免费下载链接】jsxbin-to-jsx-converter JSXBin to JSX Converter written in C# 项目地址: https://gitcode.com/gh_mirrors/js/jsxbin-to-jsx-converter JSXBin转换是前端开发与Adobe自动化工作流…

通过SSH连接YOLO11环境,远程开发超方便

通过SSH连接YOLO11环境&#xff0c;远程开发超方便 你是否还在为本地显卡性能不足、环境配置繁琐、团队协作困难而反复重装依赖、调试端口、折腾CUDA版本&#xff1f; 是否试过在笔记本上跑YOLO训练&#xff0c;结果风扇狂转、温度报警、进度条卡在Epoch 3不动&#xff1f; 又…

文艺复兴美学与现代设计的完美融合:开源复古字体EB Garamond 12全解析

文艺复兴美学与现代设计的完美融合&#xff1a;开源复古字体EB Garamond 12全解析 【免费下载链接】EBGaramond12 项目地址: https://gitcode.com/gh_mirrors/eb/EBGaramond12 在数字设计领域&#xff0c;寻找兼具历史底蕴与现代实用性的字体始终是设计师的挑战。EB Ga…

5款颠覆Windows操作体验的效率工具解锁效率革命

5款颠覆Windows操作体验的效率工具解锁效率革命 【免费下载链接】Flow.Launcher :mag: Quick file search & app launcher for Windows with community-made plugins 项目地址: https://gitcode.com/GitHub_Trending/fl/Flow.Launcher 你是否每天都在重复着打开应用…

Qwen3-0.6B批量推理优化:批处理参数设置与GPU利用率提升

Qwen3-0.6B批量推理优化&#xff1a;批处理参数设置与GPU利用率提升 1. 为什么关注Qwen3-0.6B的批量推理&#xff1f; 你可能已经注意到&#xff0c;Qwen3-0.6B这个模型名字里带了个“0.6B”——它只有6亿参数。相比动辄几十上百亿的大模型&#xff0c;它小得像一只轻巧的蜂鸟…

IndexTTS-2模型热更新:不停机替换音色实战教程

IndexTTS-2模型热更新&#xff1a;不停机替换音色实战教程 1. 为什么需要热更新音色&#xff1f;——从“重启服务”到“秒级切换”的真实痛点 你有没有遇到过这样的情况&#xff1a;语音合成服务正在给客户做实时播报&#xff0c;突然运营同事说&#xff1a;“老板想换一个更…

TurboDiffusion虚拟人应用:表情动作驱动视频生成教程

TurboDiffusion虚拟人应用&#xff1a;表情动作驱动视频生成教程 1. 什么是TurboDiffusion&#xff1f;它为什么特别适合做虚拟人&#xff1f; TurboDiffusion不是普通视频生成工具&#xff0c;它是清华大学、生数科技和加州大学伯克利分校联合打磨出来的“视频生成加速引擎”…

旧设备性能激活:三步定制化升级macOS Catalina全指南

旧设备性能激活&#xff1a;三步定制化升级macOS Catalina全指南 【免费下载链接】macos-catalina-patcher macOS Catalina Patcher (http://dosdude1.com/catalina) 项目地址: https://gitcode.com/gh_mirrors/ma/macos-catalina-patcher 旧设备升级不仅是系统版本的更…

Qwen3-4B部署教程:Windows WSL环境快速上手机械版

Qwen3-4B部署教程&#xff1a;Windows WSL环境快速上手机械版 1. 为什么选Qwen3-4B-Instruct-2507&#xff1f;小白也能看懂的实用价值 你可能已经听过“大模型”这个词&#xff0c;但真正用起来&#xff0c;常遇到几个现实问题&#xff1a;显存不够、环境配不起来、跑不动、…

Qwen3-1.7B LangChain调用教程:Python集成完整指南

Qwen3-1.7B LangChain调用教程&#xff1a;Python集成完整指南 1. 为什么选Qwen3-1.7B做本地轻量级集成 如果你正在找一个既保持较强语言理解能力、又能在消费级显卡或中等配置GPU上流畅运行的大模型&#xff0c;Qwen3-1.7B是个很实在的选择。它不是动辄几十GB显存需求的“巨…

MAA自动化工具:提升明日方舟游戏效率的智能作战方案

MAA自动化工具&#xff1a;提升明日方舟游戏效率的智能作战方案 【免费下载链接】MaaAssistantArknights 一款明日方舟游戏小助手 项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights MAA助手作为一款基于图像识别技术的明日方舟游戏辅助工具&…

工业现场I2C HID设备无法响应的全面讲解

以下是对您提供的博文《工业现场IC HID设备无法响应的全面技术解析》进行 深度润色与结构重构后的终稿 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI腔调与模板化表达(如“本文将从……几个方面阐述”) ✅ 拒绝机械式章节标题,代之以自然、有张力的技术叙事逻辑 ✅…

7大方案解决iOS降级工具downr1n运行失败的全面指南

7大方案解决iOS降级工具downr1n运行失败的全面指南 【免费下载链接】downr1n downgrade tethered checkm8 idevices ios 14, 15. 项目地址: https://gitcode.com/gh_mirrors/do/downr1n 在使用downr1n进行iOS设备降级时&#xff0c;您是否遇到过工具运行失败、设备无响应…

企业身份认证体系构建:SSO服务架构的技术探索指南

企业身份认证体系构建&#xff1a;SSO服务架构的技术探索指南 【免费下载链接】cas 项目地址: https://gitcode.com/gh_mirrors/cas/cas 1. 分布式环境下的身份认证挑战 在企业IT架构向微服务转型过程中&#xff0c;跨系统身份认证面临三大核心问题&#xff1a;认证状…

小白福音!PyTorch-2.x-Universal-Dev镜像保姆级使用教程

小白福音&#xff01;PyTorch-2.x-Universal-Dev镜像保姆级使用教程 1. 为什么你需要这个镜像&#xff1a;告别环境配置的“玄学时刻” 你是不是也经历过这些场景&#xff1f; 花一整天配PyTorch环境&#xff0c;最后发现CUDA版本和驱动不匹配&#xff0c;torch.cuda.is_ava…