当前位置: 首页 > article >正文

maven中scope和optional区别

文章目录

  • 1. Scope(作用范围):
  • 2. Optional(可选项):

1. Scope(作用范围):

  • Maven的<scope>元素用于指定依赖项的作用范围,即依赖项在构建和运行时的可见性和可用性。以下是常见的 <scope> 值:

1、compile:默认值,依赖项在编译、测试和运行时都可用。
2、provided:依赖项在编译和测试时可用,但在运行时由目标环境提供(例如,Servlet API由Servlet容器提供)。
3、runtime:依赖项在测试和运行时可用,但不在编译时。
4、test:依赖项仅在测试时可用,不会包含在运行时类路径中。
5、system:类似于 provided,但需要显式提供路径。
6、import:只在 <dependencyManagement> 中使用,表示导入依赖的管理信息而不实际引入依赖。

<dependencies>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>example-artifact</artifactId>
        <version>1.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
  • 上述例子中,example-artifact 在编译、测试和运行时都可用。

2. Optional(可选项):

  • Maven的<optional>元素用于标记依赖项是否是可选的。可选依赖项默认情况下不会传递给项目的依赖方。如果一个项目A依赖于项目B,而项目B的某个依赖项被标记为可选,那么项目A并不会自动获取项目B的可选依赖项。
  • 如:
<dependencies>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>example-artifact</artifactId>
        <version>1.0</version>
        <optional>true</optional>
    </dependency>
</dependencies>
  • 上述例子中,example-artifact 被标记为可选依赖项。如果项目A依赖于项目B,并且项目B的这个依赖项被标记为可选,那么项目A将不会自动获取这个可选依赖项。

  • 总结:<scope> 用于定义依赖项的可见性和可用性,而 <optional> 用于标记依赖项是否是可选的。


http://www.kler.cn/a/147022.html

相关文章:

  • 进阶——十六届蓝桥杯嵌入式熟练度练习(LED的全开,全闭,点亮指定灯,交替闪烁,PWM控制LED呼吸灯)
  • 《自动驾驶与机器人中的SLAM技术》ch1:自动驾驶
  • 深度学习与计算机视觉 (博士)
  • unity学习12:地图相关的一些基础2, 增加layer种草种树
  • C语言期末回忆
  • hadoop源码解读
  • opencv-利用DeepLabV3+模型进行图像分割去除输入图像的背景
  • Redis之C语言底层数据结构笔记
  • UE5富文本框学习(用途:A(名字)用刀(图片)击杀B(名字))
  • Nginx的location块相关知识积累(包括常用的正则匹配表达式的介绍)
  • PLC ST语言经典电路之 一键启停 和 时钟脉冲
  • cadence virtuoso simulation文件夹删除
  • 文件元数据批量修改:mp3音频和mp4视频的元数据如何批量修改
  • ARM异常模型
  • 基于51单片机的超声波测距系统【程序+proteus仿真+参考论文+原理图+PCB等16个文件夹资料】
  • Flutter 开发入门文章汇总
  • HNU 练习八 结构体编程题2. 招聘
  • 一对一连接MODBUS转PROFINET网关TS-182技术特点和主要参数
  • 为何要隐藏IP地址?网络上哪些行为需要隐藏IP和更换IP?
  • 某思路等考通一级MSOffice的分析
  • 15:00面试,15:06就出来了,问的问题有点变态。。。
  • 普通表计读数开发思路
  • 使用conan包 - 调试软件包
  • 【Unity程序技巧】加入缓存池存储地图资源,节省资源,避免多次CG
  • 常用Web安全扫描工具合集