gradle 每次运行都会下载依赖的解决办法

在执行build、compile等任务时会解析项目配置的依赖并按照配置的仓库去搜寻下载这些依赖。默认情况下,Gradle会依照Gradle缓存->你配置的仓库的顺序依次搜寻这些依赖,并且一旦找到就会停止搜索。如果想要忽略本地缓存每次都进行远程检索可以通过在执行命令时添加–refresh-dependencies参数来强制刷新依赖

 gradle build --refresh-dependencies

当远程仓库上传了相同版本依赖时,有时需要为缓存指定一个时效去检查远程仓库的依赖笨版本,Gradle提供了cacheChangingModulesFor(int, java.util.concurrent.TimeUnit),
cacheDynamicVersionsFor(int, java.util.concurrent.TimeUnit)两个方法来设置缓存的时效

configurations.all {
    //每隔24小时检查远程依赖是否存在更新
     resolutionStrategy.cacheChangingModulesFor 24, 'hours'
    //每隔10分钟..
    //resolutionStrategy.cacheChangingModulesFor 10, 'minutes'
    // 采用动态版本声明的依赖缓存10分钟
    resolutionStrategy.cacheDynamicVersionsFor 10*60, 'seconds'
}

dependencies {
    // 添加changing: true
    compile group: "group", name: "module", version: "1.1-SNAPSHOT", changing: true
    //简写方式
    //compile('group:module:1.1-SNAPSHOT') { changing = true }
}

缓存管理

缓存位置管理

  Gradle在按照配置的仓库去搜寻下载依赖时,下载的依赖默认会缓存到USER_HOME/.gradle/caches目录下,当然也可以手工修改这个位置。
  具体可以参考如下三种方式:

    1. 通过添加系统变量 GRADLE_USER_HOME
    1. 设置虚拟机参数 org.gradle.user.home属性
    1. 通过命令行-g或者 --gradle-user-home 参数设置

离线模式(总是采用缓存内容)

  Gradle提供了一种离线模式,可以让你构建时总是采用缓存的内容而无需去联网检查,如果你并未采用动态版本特性且可以确保项目中依赖的版本都已经缓存到了本地,这无疑是提高构建速度的一个好选择。开启离线模式只需要在执行命令时候添加–offline参数即可。当然,采用这种模式的也是有代价的,如果缓存中搜寻不到所需依赖会导致构建失败。


gradle build --offline

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于Gradle项目,在每次操作时都需要重新下载依赖的情况可能有几种原因: 1. 项目配置更改:如果您在项目的构建文件(如`build.gradle`)中更改了依赖项的版本或添加了新的依赖项,Gradle根据配置重新下载所需的依赖项。 2. 缓存失效:Gradle将已下载依赖项存储在本地缓存中,以便在后续构建中重用。如果缓存被删除或损坏,Gradle重新下载依赖项。 3. 依赖项更新:如果您使用的依赖项有新的版本可用,并且您在构建文件中将其更新为新版本,Gradle重新下载依赖项。 为了避免每次操作都重新下载依赖,您可以尝试以下方法: 1. 使用离线模式:Gradle提供了离线模式,可以在没有网络连接的情况下运行构建。您可以使用`--offline`参数运行Gradle命令,这样Gradle将只使用本地缓存中的依赖项而不重新下载。 2. 配置本地缓存:您可以通过更改Gradle的本地缓存路径来控制依赖项的重复下载。在`settings.gradle`文件中,您可以设置`gradle.home`属性来指定缓存路径,并确保该路径在不同的构建之间保持一致。 3. 使用构建缓存Gradle的构建缓存功能可以帮助减少重复下载依赖项的次数。您可以启用构建缓存,以便Gradle在不同构建之间共享和重用已解析的依赖项。您可以在构建脚本中设置`buildCache`来配置构建缓存。 希望这些方法对您有所帮助!如果您有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值