如何强制刷新远程依赖的.aar文件?禁用Gradle特定文件缓存
强制刷新特定远程AAR依赖(无需清空整个Gradle缓存)
我之前也碰到过一模一样的问题——固定版本的远程AAR更新了,但Gradle死死攥着缓存里的旧文件不肯松手。下面几个精准方案,帮你只针对这个特定AAR处理,完全不用动整个缓存:
1. 手动删除该AAR的缓存文件
Gradle会把下载的依赖存在./gradle/caches/modules-2/files-2.1/路径下,按照groupId/artifactId/version的层级存放。操作步骤很简单:
- 找到你依赖的AAR对应的坐标(比如你的依赖是
implementation 'com.your.group:your-lib:1.0.0@aar') - 定位到路径
./gradle/caches/modules-2/files-2.1/com.your.group/your-lib/1.0.0/ - 删除这个文件夹里的所有文件(就是缓存的旧AAR)
- 重新执行构建,Gradle就会自动从远程仓库拉取最新的AAR了
2. 通过Gradle配置永久禁用该AAR的缓存
如果不想每次手动删缓存,可以在模块的build.gradle里给这个依赖添加专属缓存策略,让Gradle每次构建都主动检查并重新下载:
implementation('com.your.group:your-lib:1.0.0@aar') { // 标记该依赖为"可能变化"的(哪怕是固定版本号) changing = true // 直接禁用该依赖的本地缓存,每次构建都重新拉取 resolutionStrategy.cacheChangingModulesFor 0, 'seconds' }
配置完成后,每次构建Gradle都会跳过本地缓存,直接从远程仓库获取最新的AAR文件。
3. 用Gradle命令临时刷新特定模块的依赖
如果你只是想临时刷新一次,不想修改配置文件,可以结合--refresh-dependencies参数和具体的模块构建任务。虽然这个参数默认会刷新模块下的所有依赖,但比清空整个缓存要精准得多:
./gradlew :app:assembleDebug --refresh-dependencies
把:app换成你需要刷新的模块名称即可。
补充提醒:如果你的AAR是发布在Maven仓库的固定版本,要先确认远程仓库的AAR确实已经更新,并且没有被仓库的CDN或缓存机制拦截——有时候问题出在远程端,不是Gradle的锅。
内容的提问来源于stack exchange,提问作者matdev
相关产品推荐
相关产品推荐

