【问题标题】:Gradle dependency caching mechanismGradle 依赖缓存机制
【发布时间】:2016-05-03 17:59:45
【问题描述】:

在我的 user-home/.gradle/caches 下,我看到了多个工件目录,例如工件 14,工件 24,模块 2。 所有这些文件夹都存储重复的工件。所以我的问题是,为什么以及在什么条件下 gradle 必须创建多个工件文件夹?还可以将 gradle 配置为在目录中查找和存储工件。这样做可以节省磁盘空间,避免存储重复的工件。

【问题讨论】:

  • 每个存储库缓存文件夹是否包含相同的 jar?还是只是重复的 pom/xml 文件?

标签: gradle


【解决方案1】:

高度复杂的依赖缓存,不起作用 (3.4)。构建文件有一个新的依赖版本,但 Gradle 仍然从一些奇怪的中间依赖缓存中获取工件,而不是从本地 maven repo 获取新版本

【讨论】:

    【解决方案2】:

    Gradle 包含高度复杂的依赖缓存机制。

    您可以查看位于项目目录下的第一个文件夹.gradle。
    每次运行任务时 Gradle 都会重新创建。

    在主目录下还有一个文件夹.gradle。 Gradle 创建它并使用它来存储依赖项以减少下载时间。

    Gradle 依赖缓存包含 2 种关键类型的存储:

    • 下载工件的基于文件的存储,包括像 jars 这样的二进制文件以及像 POM 文件和 Ivy 文件这样的原始下载元数据。下载的工件的存储路径包括 SHA1 校验和,这意味着可以轻松缓存 2 个名称相同但内容不同的工件。

    • 已解析模块元数据的二进制存储,包括解析动态版本、模块描述符和工件的结果。 将下载的工件的存储与缓存元数据分离允许我们使用缓存做一些非常强大的事情,这对于透明的、仅文件的缓存布局来说是很困难的。

    您可以阅读更多info here。查看The dependency cache 章节。

    【讨论】:

      猜你喜欢
      • 2016-03-13
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      相关资源
      最近更新 更多