Gradle Tips (1):强制Gradle 刷新依赖

事情是这样的。
这周二,同事提交了一个组件的新版本0.1.0,更新了工程里对这个组件的依赖的版本号之后,Sync Now成功,但发现新版本把以前的一个接口移除了,需要重新加回来。

于是乎,同事重新提交了组件,然而版本号不变,依然保持0.1.0

接着悲剧就发生了。由于之前Gradle 本地已经下载到了旧的0.1.0版本的组件,这个组件缓存到了本机的cache中,后续Gradle发现本地已有0.1.0版本,就不会重复发起网络请求去拉取这个组件,因而本地使用的,就一直是旧的那份缓存,而非服务器上更新过的那份。

解决问题关键,就是让Gradle重新去下载依赖的组件。有两种方式:

  1. 清除Gradle 的缓存:缓存所在路径为~/.gradle/caches/ ,简单粗暴地使用rm -rf ~/.gradle/caches/干掉所有缓存,自然就能让Gradle重新下载依赖的组件。但这种方式过于粗暴,会影响全局所有的缓存,不仅仅是所有工程的依赖,还包括Gradle Wrapper依赖的Gradle 版本缓存。

  2. 另一种方式,是在执行 Gradle 脚本任务的命令后面,追加--refresh-dependencies参数,让Gradle在执行过程中,刷新相关的依赖。这样就能做到仅刷新当前工程的依赖,而不影响其他的东西。示例:./gradlew :app:assembleDebug --refresh-dependencies

参考资料

How can I force gradle to redownload dependencies?
The Gradle build system- Tutorial

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 请允许我借鉴前辈们的东西~~~~ 感激不尽~~~~~ 以下为Android 框架排行榜 么么哒~ Android...
    嗯_新阅读 6,696评论 3 32
  • Gradle 是一款构建系统工具,它的 DSL 基于 Groovy 实现。Gradle 构建的大部分功能都是通过插...
    任教主来也阅读 8,295评论 3 6
  • 原文链接:这里翻译帮助:谷歌翻译 Gradle Tips 在过去一年左右,我开始使用Gradle作为我构建基于JV...
    小呀么小黄鸡阅读 12,164评论 0 37
  • 本文参加#感悟三下乡,青春筑梦行#活动,本人承诺,文章内容为原创,且未在其他平台发表过。 计划总是赶不上变化,老天...
    小静云阅读 3,269评论 0 1
  • 两个大学毕业的年轻人决定一起去创业,她们来到华尔街,并连续换了几个工作。最终,她们都受雇于一家大证券公司——赫顿公...
    博通财富阅读 2,817评论 0 0