gradle学习之旅(十二) 本地依赖缓存与解决依赖问题

本地缓存的结构

  • 本地缓存中用来存储依赖的Gradle根目录是<USER_HOME>/.gradle/caches
  • 缓存实际上被分为两个部分,包括从仓库下载的原始二进制文件和已下载工件的元数据

gradle缓存特性

  • gradle会将依赖工件的来源存储在缓存中,当仓库中的结构发生变化,会自动调整,使得新的构建更可靠
  • 工件变化检测,项目依赖元数据被存储在缓存中,避免每次运行构建时都对仓库进行检查
  • 集成本地仓库,避免对远成仓库频繁访问
  • 通过比较本地和远程的校验来检测仓库中的工件是否发生变化,无变化工件不再次下载
  • 离线模式
    通过运行命令行选项--offset告诉Gradle在离线模式下,不要检查远程仓库。

应对版本冲突

  • gradle不会自动通知项目遇到了版本冲突,通常是程序运行失败时程序员自己分析原因,然后运行依赖报告观察得出依赖冲突问题所在。Gradle遇到版本冲突的默认策略是选择最新版本依赖。可以修改默认策略,使版本冲突发生时程序构建失败,不过不建议这么做,毕竟很多开源类库都会依赖一些相同的类库。
  • 强制指定一个版本
    通过configuration的resolutionStraregy方法,使用force可以为依赖强制指定版本,有效空间为全局
  • 依赖观察报告
    它可以解释图中的依赖是如何选择的以及为什么
    gradle -q dependencyInsight --configuration configurationName --dependency dependencyName
  • 刷新缓存
    对依赖的SNAPSHOT版本和动态版本模式声明的版本,gradle提供特性缓存刷新策略,24小时一刷,也可以使用命令行选项 --refresh-dependencies手动刷新缓存中的依赖。也可以在configuration.resolutionStrategy方法中传入闭包 cacheChangingModulesFor 0, 'seconds'(暂不缓存 SNAPSHOT版本)、cacheDunamicVersionsFor 0, 'seconds'(缓存动态版本依赖0秒超时)

转载于:https://www.cnblogs.com/Theshy/p/8044296.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值