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

【笔记】关于Maven中<optional>标签的理解

之前我有个误区:子pom通过<parent>标签继承父pom,如果父pom中的依赖设置<optional>true</optional>

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><optional>true</optional>
</dependency>

子pom就不会继承此依赖关系,事实证明,我理解错了。下面通过实际操作来理解可选依赖。

SpringCloud项目主工程的pom.xml文件如下:引入了hutool-all工具jar包

在这里插入图片描述

common公共模块继承主工程

在这里插入图片描述

通过Maven Helper插件看看模块的依赖关系,发现hutool-all jar包被继承下来了。

在这里插入图片描述
难道是<optional>标签不生效吗?,不是的,<optional>标签实际应用如下:

在common模块中引入一个新的jar包,去掉<optional>属性,或者属性值设置为false

在这里插入图片描述

另一个business业务模块引入common公共模块,使business业务模块在可以顺利声明使用common模块中写的公共方法。

在这里插入图片描述

Maven Helper查看依赖(Maven Helper插件的安装和使用这里不再赘述,大家网上搜素就有相关文档),可以看到easypoi依赖也顺利加载过来

在这里插入图片描述
我们现在回到common模块,设置easypoi依赖的<optional>true</optional>,在查看business模块的依赖关系,发现没有easypoi依赖了。

在这里插入图片描述
至此,结束。希望这篇文章对家理解<optional>有一定的帮助。

http://www.lryc.cn/news/45509.html

相关文章:

  • JavaScript函数及面向对象
  • 【chartGPT】我们要不要搞chartGPT?
  • java——date时间类型操作
  • 应急响应——IDSIPSmsf流量后门分析
  • 项目二:电子骰子
  • D. Genius‘s Gambit(很多情况)
  • jsp824汽车维修保养管理系统javaEE+mysql
  • Linux下C/C++ redis协议(RESP)解析
  • IDEA 性能优化设置
  • 蓝桥杯刷题冲刺 | 倒计时4天
  • 阿里测试7年经验,从功能测试到自动化测试,我整理的超全学习指南
  • jar加密后当作SDK给别人使用(可maven引入)
  • 【编程基础】032、C语言中结构体在解题中的应用
  • Kotlin 是后端开发的未来
  • Vue3学习笔记(9.1)
  • MinIO 环境变量泄漏漏洞(CVE-2023-28432)
  • 数组转字符串、字符串转数组的方法
  • local fault和remote fault
  • 二叉树搜索树 AVL树
  • nginx配置代理多个前端资源
  • SuperMap iServer下载安装,启用服务,以及发布服务
  • vxe-table简单使用 vue vxe-table vue整合vxe-table vue2 vxe-table 简单使用
  • Vue项目的打包上线步骤
  • 都2023了,学习自动化测试还有必要么?会不会浪费我时间
  • 银行数字化转型导师坚鹏:如何有效推进银行数字化转型工作
  • 【MySQL高级篇】第09章_性能分析工具的使用
  • 关于xhtml和html的区别
  • 原生JavaScript比较两个日期大小,项目中通用
  • 【JAVA真的没出路了吗?】
  • PCB模块化设计11——VGA高速PCB布局布线设计规范