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

如何强制Gradle使用最新依赖?解决Checkmarx扫描Ivy版本问题

解决Checkmarx扫描中Gradle缓存残留旧版Apache Ivy的问题

为满足Checkmarx漏洞扫描要求升级应用时,发现引入的org.apache.ivy版本过时,我已经通过Gradle的强制依赖配置指定了2.5.2版本:

all {
  resolutionStrategy {
    force 'org.apache.ivy:ivy:2.5.2'
  }
}

本地执行gradlew dependencies查看依赖树,显示只有2.5.2版本,符合预期,但提交到Jenkins构建后,Checkmarx扫描仍能在Gradle缓存路径里找到旧版Ivy。以下是彻底清理旧版本的几种方法:

  • 直接清理Jenkins节点的Gradle缓存
    Jenkins的Gradle缓存默认存在~/.gradle/caches/modules-2/files-2.1/org.apache.ivy/ivy路径下,直接删除该路径下除2.5.2以外的所有版本文件夹即可。也可以在Jenkins构建脚本里加缓存清理步骤:
    Linux/macOS环境执行:

    rm -rf ~/.gradle/caches/modules-2/files-2.1/org.apache.ivy/ivy/*
    rm -rf ~/.gradle/caches/modules-2/metadata-2.9/descriptors/org.apache.ivy/ivy/*
    

    Windows环境用PowerShell执行:

    Remove-Item -Recurse -Force "$env:USERPROFILE\.gradle\caches\modules-2\files-2.1\org.apache.ivy\ivy\*"
    Remove-Item -Recurse -Force "$env:USERPROFILE\.gradle\caches\modules-2\metadata-2.9\descriptors\org.apache.ivy\ivy\*"
    
  • 在Gradle脚本里加缓存清理任务
    在项目的build.gradle中添加一个任务,让它在依赖解析前自动清理旧版Ivy缓存:

    task cleanIvyCache {
      doLast {
        def ivyCacheDir = new File(System.getProperty('user.home') + '/.gradle/caches/modules-2/files-2.1/org.apache.ivy/ivy')
        if (ivyCacheDir.exists()) {
          ivyCacheDir.eachFile { file ->
            if (!file.name.startsWith('2.5.2')) {
              file.deleteDir()
            }
          }
        }
      }
    }
    
    dependencies {
      // 确保清理任务在依赖解析前执行
      configurations.all.dependsOn(cleanIvyCache)
    }
    
  • Jenkins构建时强制刷新依赖
    在Jenkins的Gradle构建步骤里,勾选“Refresh dependencies”选项,或者给Gradle命令加上--refresh-dependencies参数,强制Gradle重新解析依赖,不使用缓存里的旧版本。

  • 启用Gradle依赖锁定
    开启依赖锁定功能,确保项目始终用指定版本的Ivy,避免意外引入旧版本:

    dependencyLocking {
      lockAllConfigurations()
    }
    

    执行gradlew dependencies --write-locks生成依赖锁文件,提交到版本库,Jenkins构建时会严格按照锁文件里的版本解析依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:17:27