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

Gradle中如何为内部versionCatalog设置changing=true以取消缓存实时拉取?

解决Gradle版本目录每次构建强制拉取的方案

针对你遇到的latest.release版本目录缓存问题,有几个可行的解决办法:

1. 命令行强制刷新

每次构建时添加--refresh-dependencies参数,直接强制Gradle忽略缓存,重新拉取所有依赖(包括版本目录):

./gradlew build --refresh-dependencies

Windows环境使用:

gradlew.bat build --refresh-dependencies

2. 配置模块解析策略,标记为变动依赖

在settings.gradle中添加解析策略,明确将你的版本目录模块标记为变动依赖,并调整缓存规则:

dependencyResolutionManagement {
    resolutionStrategy {
        eachDependency { details ->
            if (details.requested.group == 'com.myCompany.myGroup' && details.requested.name == 'catalog') {
                details.changing = true
            }
        }
        // 设置变动依赖的缓存超时为0秒,每次构建都检查更新
        cacheChangingModulesFor 0, 'seconds'
    }
    versionCatalogs {
        libs {
            from("com.myCompany.myGroup:catalog:latest.release")
        }
    }
}

通过cacheChangingModulesFor将变动依赖的缓存周期设为0,确保每次构建都会去仓库拉取最新版本。

3. 改用快照版本

如果可以调整Nexus中的版本目录版本号,建议改用快照版本(比如1.0.0-SNAPSHOT),Gradle对快照版本默认会更频繁地检查更新,无需额外配置即可实现近似实时的拉取:

dependencyResolutionManagement {
    versionCatalogs {
        libs {
            from("com.myCompany.myGroup:catalog:1.0.0-SNAPSHOT")
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:45:06