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

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.lryc.cn/news/250066.html

相关文章:

  • 《ChatGPT实操应用大全》探索无限可能
  • 基于helm的方式在k8s集群中部署gitlab - 部署(一)
  • flask web开发学习之初识flask(二)
  • 利用异或、取反、自增bypass_webshell_waf
  • K8s Docker实践三
  • 记录 | pip加速配置
  • HarmonyOS开发—Arkts循环渲染(ForEach)深入运用详解【鸿蒙专栏-16】
  • uniapp挽留提示2.0
  • 电源控制系统架构(PCSA)之系统分区电压域
  • [Linux] 正则表达式及grep和awk
  • ssm+java车辆售后维护系统 springboot汽车保养养护管理系统+jsp
  • HNU练习七 字符串编程题7. 机器人游戏
  • 【Linux】bash 终端指令
  • 基于SpringBoot高校心理教育辅导设计与实现
  • 关于电脑提示vcruntime140_1.dll无法继续执行代码的解决办法
  • 5. 链表
  • OSI七层模型与TCP/IP四层模型的区别(计算机网络)
  • Other--什么是 CGI,FastCGI、asp、jsp
  • sql关联另一个表,update表的值
  • Python基础:JSON保存结构化数据(详解)
  • 抑郁症日常如何调节?
  • hive两张表实现like模糊匹配关联
  • 【高效开发工具系列】Hutool DateUtil工具类
  • 基于springcloud openfein 使用示例,包含代码和 maven 依赖配置
  • 彰显营销硬实力!皓量科技连续四年入选《中国数字营销生态图》
  • web静态网页设计与制作-基于HTML+CSS+JS实现旅游摄影网站
  • 每日一题:LeetCode-1089. 复写零
  • React Native环境搭建及Hello World
  • VS2017 C++ Qt工程打包软件
  • 【JWT的原理和使用】