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

问题记录-maven依赖升级或替换(简单版)

问题背景

项目被检测到有高危漏洞,需要对部分jar进行升级。以一个jar为例记录一下升级过程。
1 找到高危漏洞的包
如果装了maven helper插件则可以在下面查看当前模块依赖包
在这里插入图片描述
2 使用maven命令
执行下面这个命令,会将当前项目的信息打印出来,那个jar依赖了什么其它的jar可以看的非常的清楚。

mvn dependency:tree

在这里插入图片描述
3 进行依赖排除

<dependency>
   <groupId>org.geotools</groupId>
   <artifactId>gt-main</artifactId>
   <version>${geotools.version}</version>
   <exclusions>
       <exclusion>
           <artifactId>commons-text</artifactId>
           <groupId>org.apache.commons</groupId>
       </exclusion>
   </exclusions>
</dependency>

4 依赖替换
将里面的依赖排除,替换成我们需要升级的版本

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-text</artifactId>
   <version>1.10.0</version>
</dependency>

5 其它方法
其实我们也可以偷懒直接去替换jar 包里面的依赖,然后重新压缩成jar文件。

java jar cvfm0 demo.jar . #注意后面的. 在当前目录执行此命令

-c:创建新的 JAR 文件包
-t:列出 JAR 文件包的内容列表
-x:展开 JAR 文件包的指定文件或者所有文件
-u:更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)
-v:生成详细报告并打印到标准输出
-f:指定 JAR 文件名,通常这个参数是必须的
-m:指定需要包含的 MANIFEST 清单文件
-0:只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快(最好不要压缩)
-M:不产生所有项的清单(MANIFEST〕文件,此参数会忽略-m参数
增量更新

jar -uvf0 commons-text-1.10.0.jar test  #这个命令意思是将test目录放到jar中去 
jar -uvf0 commons-compiler-3.1.2.jar META-INF/* #这个意思是将META-INF 中的所有文件添加到jar中去
#这里有个问题就是更新过一次以后,再更新会有错误

在这里插入图片描述
在这里插入图片描述

特别注意 :这样的升级方式的前提是,你所使用的接口在更高版本的jar中没有被替换,也就是能向低版本兼容如果不行,有可能就涉及到多个依赖的升级。


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

相关文章:

  • Android修行手册-ViewPager定制页面切换以及实现原理剖析
  • PHP常用系统函数的 学习资料
  • ffmpeg开发 环境配置
  • 19、串口向电脑发送数据电脑通过串口控制LED
  • 【数据结构】—AVL树(C++实现)
  • codeblocks debug
  • 亚马逊云与生成式 AI 的融合——生成式AI的应用领域
  • 彻底删除VsCode配置和安装过的插件与缓存
  • docker 安装nginx
  • 基于社区电商的Redis缓存架构-用户分享内容的分页列表缓存延迟构建以及异步通知缓存重建
  • 【代码随想录】算法训练计划37
  • centos 显卡驱动安装(chatglm2大模型安装步骤一)
  • 通过亚马逊云科技云存储服务探索云原生应用的威力
  • TCP解帧解码、并发送有效数据到FPGA
  • 百马百担c语言编程
  • 目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】YOLOV5
  • Axios.post 请求报错: 403 Forbidden missing csrf token 和 invalid csrf token
  • aspose-words 跳过证书验证jar
  • 【opencv】计算机视觉基础知识
  • 2023年亚太杯APMCM数学建模大赛A题水果采摘机器人的图像识别