You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle Java项目如何升级aws-sdk:ssm依赖的commons-codec版本

commons-codec 传递依赖版本升级临时方案

问题说明

安全扫描检测到项目中引入的commons-codec 1.11存在安全漏洞,需升级至1.13版本。该依赖并非项目直接声明引入,而是通过software.amazon.awssdk:ssm -> httpclient -> commons-codec的传递链路引入,即使将aws-sdk升级到当前最新版本,传递拉取的commons-codec依旧是存在漏洞的旧版本。
当前项目使用的Gradle依赖配置如下:

implementation platform('software.amazon.awssdk:bom:2.17.230')
implementation 'software.amazon.awssdk:regions'
implementation 'software.amazon.awssdk:ssm'

对应依赖链路参考:
依赖链路截图

可行解决方法

不需要等待aws-sdk官方更新依赖版本,通过Gradle的依赖版本管理机制即可临时覆盖传递依赖的版本,两种常用实现都可以生效:

  • 方法一:直接显式声明高版本依赖
    Gradle在做依赖版本解析时,会优先选择项目中显式声明的依赖版本,直接在dependencies块中新增1.13版本的commons-codec依赖,即可自动覆盖所有传递链路引入的低版本:
    // 原有依赖保持不变
    implementation platform('software.amazon.awssdk:bom:2.17.230')
    implementation 'software.amazon.awssdk:regions'
    implementation 'software.amazon.awssdk:ssm'
    // 新增显式声明,覆盖传递依赖版本
    implementation 'commons-codec:commons-codec:1.13'
    
  • 方法二:通过resolutionStrategy强制指定版本
    如果不想额外新增依赖声明,可以在配置块中给所有依赖解析规则加强制版本约束,所有配置下传递引入的commons-codec都会被强制替换为指定版本:
    configurations.all {
        resolutionStrategy {
            force 'commons-codec:commons-codec:1.13'
        }
    }
    

验证方法

配置修改完成后,在项目根目录执行./gradlew dependencies(Windows环境执行gradlew.bat dependencies),在输出的依赖树中搜索commons-codec条目,确认最终解析的版本为1.13即配置生效。
补充说明:commons-codec 1.13完全向下兼容1.11版本的API,AWS SDK v2在该版本下运行无兼容问题,可以放心替换。

内容的提问来源于stack exchange,提问作者Srini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:48:21