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

【业务功能篇61】SpringBoot项目流水线 dependencyManagement 标签整改依赖包版本漏洞问题

业务场景:当前我们项目引入了公司自研的一些公共框架组件,比如SSO单点登录jar包,文件上传服务jar包等公共组件,开发新功能,本地验证好之后,部署流水线,报出一些jar包版本的整改漏洞问题,无法跑通流水线

  • 通过流水线平台显示有漏洞的依赖包,逐一排查,这里存在有两种包类型,一种就是我们自己项目直接依赖的包版本问题,这些占少部分,直接修改pom文件的依赖版本号,根据内部平台查询该依赖包有哪些其他可行的版本号兼容的,就直接修改即可
  • 主要问题还是在于,我们引入了多个公司自研的框架jar包,而这些jar包又引入了一些相关的jar包,这些包的版本存在漏洞问题,需要去升级这些包的依赖版本,那推动这些自研包团队去修改升级包,我们再去直接修改这个自研包版本,效果不好,他们团队需要花时间修复代码,那最后我们就利用 dependencyManagement 锁定依赖库的版本号
<!-- 漏洞修复--><dependencyManagement><dependencies><dependency><groupId>com.common.log</groupId><artifactId>log-class</artifactId><version>1.2.12</version></dependency><dependencies></dependencyManagement>

因为那些是间接依赖的包,我们无法直接像我们直接依赖的包 ,能直接去修改版本号,所以需要通过这个dependencyManagement 依赖管理标签去强制锁定,我们这个module模块中代码引用到的这些api接口功能时,才会去强制锁定使用这个指定的版本,而不会再去用引入框架jar包内的间接引用的版本了,可以说这也是一个 最短路径依赖原则,因为业务代码就是在该module工程下的,再加上是在这个模块的pom文件下定义的这个依赖管理指定版本号

直接依赖包的标签路径是:外层没有dependencyManagement  

 <dependencies><dependency><groupId>com.xx</groupId><artifactId>xx</artifactId><version>3.15.0</version></dependency></dependencies>

 这里还有遇到一个问题,就是jar包版本升级之后,会导致以前写的一些代码会报错,这里主要原因还是因为高版本的jar包,针对某些api接口方法的形参做了一些调整,增加了一些固定的形参属性,需要传递参数,这里只能是手动去改写代码,兼容高版本,甚至可能有些导入导出的接口功能,跨版本过大,导致旧api接口都发生大改动,比如接口包名,类名,接口名,路径等等

 

 

 

 

 

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

相关文章:

  • uniapp使用getStorage对属性赋值无效
  • 20230802-下载并安装android-studio
  • python 第九章 —— GUI界面开发(tkinter详解)
  • 线段树合并例题
  • Stable Diffusion 硬核生存指南:WebUI 中的 VAE
  • vue项目 前端加前缀(包括页面及静态资源)
  • 使用文心一言等智能工具指数级提升嵌入式/物联网(M5Atom/ESP32)和机器人操作系统(ROS1/ROS2)学习研究和开发效率
  • 【Rust 基础篇】Rust动态大小类型:理解动态大小类型与编写安全的代码
  • 【Python】使用nuitka打包Python程序为EXE可执行程序
  • 背景图片及精灵图
  • 简要介绍 | 生成模型的演进:从自编码器(AE)到变分自编码器(VAE)和生成对抗网络(GAN),再到扩散模型
  • 8.2Thread类的常见属性
  • 博客摘录「 mvvm框架工作原理及优缺」2023年7月31日
  • 第12章 Linux 实操篇-Linux磁盘分区、挂载
  • 使用express搭建后端服务
  • 深度学习——划分自定义数据集
  • Jmeter性能测试之正则表达式提取器
  • 浅谈Kubernetes中Service网络实现(服务发现)
  • 【重造轮子】golang实现可重入锁
  • torch显存分析——对生成模型清除显存
  • electron+vue+ts窗口间通信
  • 基于Fringe-Projection环形投影技术的人脸三维形状提取算法matlab仿真
  • 如何使用Webman框架实现多语言支持和国际化功能?
  • 接受平庸,特别是程序员
  • HTML兼容性
  • Java日期和时间处理入门指南
  • anndata k折交叉
  • 深入解析项目管理中的用户流程图
  • Vue使用QrcodeVue生成二维码并下载
  • “用户登录”测试用例总结