【FAQ】命令行如何刷新gradle依赖缓存?

【问题描述】

最近 gradle 在下载 maven 私服上的 aar 快照的时候,突然提示下载不了 xxx.jar。可是 maven 私服上只有 aar 包,并没有 jar 包。

【原因分析】

第一次尝试:从后缀入手:

因为 build.gradle 里没有指定后缀,刚好 gradle 又升了级,心想是不是应该在 compile 的配置末尾加上 “@aar” 指定后缀,于是加上,果然好了。

可是还是提示下不来 aar。

第二次尝试:从 aar 包入手:

发现上传的 aar 包怎么多了,分别上传了 debug 和 release 版本,我只要 release ( ⊙ o ⊙ )啊!

然后又哼哧哼哧改上传 aar 的脚本,加了个重命名函数,重新出了新的 aar 快照包并上传 maven 私服,果然,上传的包恢复如初。

可是项目工程依旧提示下不了 aar。

第三次尝试:有第二次的发现,这次仔仔细细对照 aar 的名字,发现gardle 下载的 aar 包的时间戳不对!竟然取的是老的包( ⊙ o ⊙ )!

想着这简单嘛,清一下 gradle 缓存。按下述缓存目录,找到 aar 存储的地址,删了:

~/.gradle/caches/modules-2/files-2.1/com/**/**

这样总成了吧?可是,取的还是老版本的包。( ⊙ o ⊙ )啊!!!!

【解决方案】

终于,还是查官网,找到了方法:

$ gradle build --refresh-dependencies

原来这么简单?第一次尝试的方法,加 @aar 的步骤也可以免了,一切恢复正常:)


解释:

Gradle 的依赖缓存可能与配置库当前状态不同步。比如配置错误、nexus 包不存在、下载中断、手工删除本地缓存(我的第三种尝试)等,都会影响正常下载。

所以如果要刷新依赖关系缓存中的所有依赖关系,就要在 build 后使用 --refresh-dependencies选项,它会重新计算动态版本并下载。

参考:

https://docs.gradle.org/current/userguide/dependency_management.html#sub:cache_refresh

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值