maven 依赖机制

安全工程师为啥关注maven依赖

log 4j事件之后,大家开始更加关注开源组件安全漏洞这个事。纷纷引入SCA 软件成分分析工具来识别项目中存在的开源组件和漏洞。

在sca工具扫描之后,会报出一大堆组件,review这个事就是安全团队投入时间来研判了。

对maven项目,工具会报出直接依赖,间接依赖,一层一层又一次,子子孙孙。。。。

那么是否工具报出的所有组件都是产品sbom的一部分呢?哪些子孙可以忽略了。。。

maven依赖机制

项目A 依赖了B组件,用的x版本

项目A 同时依赖了C组件,C组件又依赖了B的Y版本,

请问 A项目依赖了B组件的哪些版本?x or Y or both?

最近原则

当遇到多个版本作为依赖关系时,将选择项目的哪个版本。Maven 选择“最接近的定义”。也就是说,它使用依赖关系树中与项目最接近的依赖项的版本。您始终可以通过在项目的 POM 中显式声明版本来保证版本。请注意,如果两个依赖项版本在依赖项树中的深度相同,则第一个声明优先。

A、B 和 C 的依赖关系定义为 A -> B -> C -> D 2.0 和 A -> E -> D 1.0,然后在构建 A 时使用 D 1.0,因为从 A 到 D ,走 E 的路径更短。

如果一定要用D2.0 怎么办呢,构造一条新的路径,让到D2.0的路径最短,强制用D2.0

Excluded dependencies

如果X依赖于Y,Y依赖于Z, X的作者可以把Z排除在外, 用exclusion

下图就是把io.netty排除在外了

所以 加入netty版本有漏洞, 除了升级,也可以排除

option

如果项目Y依赖于项目Z,项目Y的所有者可以使用“Optional”元素将项目Z标记为可选依赖。当项目X依赖于项目Y时,X将只依赖于Y而不依赖于Y的可选依赖项Z。项目X的所有者可以根据自己的选择显式地添加对Z的依赖项。可以理解为默认排除掉了

以上

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux多线程】线程的同步与互斥

【Linux多线程】线程的同步与互斥 目录 【Linux多线程】线程的同步与互斥分离线程Linux线程互斥进程线程间的互斥相关背景概念问题产生的原因: 互斥量mutex互斥量的接口互斥量实现原理探究对锁进行封装(C11lockguard锁) 可重入VS线程安全概念常见的线程不安全的情况…

是谁?阻止CXL在AI场景大展身手~

CXL虽然被视为业内新宠,但好像在AI场景的应用反而没有得到广泛的响应。 AI场景对内存带宽、容量以及数据一致性有着极高需求,特别是在深度学习训练和推理过程中,大量数据需要在CPU、GPU、加速器以及内存之间快速、高效地流动。CXL作为一种新…

Java基础入门day24

day24 abstract 抽象:似是而非,像又不是,具备某种对象的特征,但不完整 生活中的抽象:动物,并不真实存在的事物 程序中的抽象:不应该被创建的对象,动物近视一种会吃会睡的对象&#…

Netty核心原理剖析与RPC实践16-20

Netty核心原理剖析与RPC实践16-20 16 IO 加速:与众不同的 Netty 零拷贝技术 今天的课程我们继续讨论 Netty 实现高性能的另一个高阶特性——零拷贝。零拷贝是一个耳熟能详的词语,在 Linux、Kafka、RocketMQ 等知名的产品中都有使用,通常用于…

【单调栈】力扣84.柱状图中最大的矩形

上篇文章我们介绍了使用 无重复值 单调栈代码解决 含有重复值 的问题,在文章的最后,留下了一道考察相同思想的题目,今天我们来看看如何套路解决该题。 (还没看过前几篇介绍的小伙伴赶快关注,在 「单调栈」 集合里查看…

通过node 后端实现颜色窃贼 (取出某个图片的主体rgb颜色 )

1.需求 我前端轮播图的背景色 想通过每一张轮播图片的颜色作为背景色 这样的话 需要通过一张图片 取出图片的颜色 这个工作通过前端去处理 也可以通过后端去处理 前端我试了试 color-thief 的插件 但是 这个插件是基于canvas 的模式来的 我需要在小程序中使用这个插件 而且是…

HarmonyOS-如何使用ArkTS声明式语法和基础组件,实现待办列表。

介绍 本篇Codelab将介绍如何使用ArkTS声明式语法和基础组件,实现简易待办列表。效果为点击某一事项,替换标签图片、虚化文字。效果如图所示: 相关概念 ArkTS语法:ArkTS是HarmonyOS的主要应用开发语言。ArkTS基于TypeScript&…

2024/3/29(MybatisPlus插件代码生成,静态工具,逻辑删除,枚举处理器.JSON处理器,分页插件,通用分页实体)

jdbc:mysql://localhost:3306/mp?useUnicodetrue&characterEncodingutf8&serverTimezoneUTC 需要这样 日志查看级别

【C++杂货铺】内管管理

目录 🌈前言🌈 📁 C/C中内存分布 📁 new 和 delete的使用 📁 new 和 delete的优点 📁 new 和 delete的原理 📂 operator new 和 operator delete函数 📂 内置类型 &#x1f4c2…

代码随想录-DAY4|leetcode-24,19,142,面试题 02.07

文章目录 22. 两两交换链表中的节点19. 删除链表的倒数第N个节点size-n方式删除双指针方式(推荐) 面试题 02.07. 链表相交142. 环形链表II暴力解法快慢指针(推荐) 22. 两两交换链表中的节点 leetcode链接:两两交换链表…

怎样一次性给多篇word文档标注拼音?一键批量注音

随着办公自动化的普及,我们经常会遇到需要处理大量Word文档的情况。在这些文档中,有时需要将文字标注上拼音,特别是在处理一些包含生僻字或需要拼音辅助阅读的文档时。然而,手动一篇篇地给Word文档标注拼音不仅效率低下&#xff0…

Docker搭建LNMP环境实战(08):安装php-fpm

1、编写php测试文件 在文件夹&#xff1a;/mnt/hgfs/dockers/test_site/www目录下创建文件&#xff1a;test.php&#xff0c;内容为&#xff1a; <?phpecho "hello world!!!!!! From test.php"; ?>2、编写php-fpm部署配置文件 在文件夹&#xff1a;/mnt/h…

mars3d兼容老版本Chrome 浏览器的附件参考记录

问题 源代码里面是es5的写法&#xff0c;怎么在浏览器上就转换了。 mars3d会将es5转es6吗&#xff1f; 看加载的Cesium.js源代码没有问题&#xff0c;但是模块里面的源代码已经转换了&#xff0c;再低版本浏览器上面会无法运行“Uncaught SyntaxError: Unexpected token ?”…

JVM(一)——内存结构

一. 前言 1、什么是 JVM? 1&#xff09;定义&#xff1a; Java Virtual Machine - java 程序的运行环境&#xff08;java 二进制字节码的运行环境&#xff09; 2&#xff09;好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收功能数组下标越…

测试员再也不怕漏测!花2年总结的这个测试模板太全了!

作为一个测试&#xff0c;最尴尬的莫过于分给你的task&#xff0c;别人做交叉兼容测试的时候&#xff0c;在你负责的内容里找出了很多你没有测试出来的bug。 我也曾因为测试不全被组长在工作群里艾特。说实话&#xff0c;真的恨不得找个地方躲起来。 为了避免自己再次出现类似…

用友BI告诉你,分析指标计算也可以很简单

分析数据&#xff0c;特别是分析财务数据&#xff0c;要计算得分析指标都非常多&#xff0c;涉及的数据来源也是各有不同&#xff0c;一旦哪个环节出了错就一切都得重来。难道分析指标的计算就没有更快更简单的办法了&#xff1f;奥威-用友BI告诉你&#xff0c;分析指标计算有别…

【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

新家装修选中央空调如何选?认准约克VRF中央空调

在现代家居生活中,追求舒适和健康生活环境的家庭越来越倾向于选择中央空调系统。面对市场上琳琅满目的中央空调品牌,如何挑选一款合适的家用中央空调成为许多消费者的一大难题。今天,我们以约克VRF中央空调为例,深入探讨其特点和优势,为广大家庭提供一个舒适的选择答案。 首先…

IP可以申请SSL证书吗?

目录 背景&#xff1a; 申请IP证书的基本条件&#xff1a; 支持IP地址的证书类型&#xff1a; 为什么要申请IP地址证书&#xff1f; 如何申请IP地址证书 背景&#xff1a; IP地址是可以实现https加密需求的&#xff0c;且IP SSL证书可以完美的解决企业对于IP地址实现http…

标准库不带操作系统移植FreeModbus到STM32

添加FreeModbus代码 首先准备一个空白的标准库项目。 下载FreeModbus源码。 将源码中的modbus文件夹复制到项目路径下&#xff0c;并把demo->BARE->port文件夹的内容也添加进来。 新建一个文件port.c备用。然后打开项目&#xff0c;将上述文件添加至项目&#xff0c;…