.gradle文件夹的每个子文件夹是用于什么的?

.gradle文件夹的每个子文件夹是用于什么的?,gradle,directory,directory-structure,Gradle,Directory,Directory Structure,我很惊讶我在任何地方都找不到这个,但无论如何,我想知道.gradle文件夹中每个文件夹的用途,以及删除它们有多安全,特别是在可移植性方面 我知道我需要缓存文件夹,因为它包含 下载的依赖项 守护进程文件夹似乎只包含 日志 workers对我来说显然是空的 wrapper似乎无关紧要,因为我不使用gradle wrapper。为什么它还要下载所有这些包装 不知道本地的 目录布局在其用户指南的章节中进行了描述 ├── caches // <1> │

我很惊讶我在任何地方都找不到这个,但无论如何,我想知道
.gradle
文件夹中每个文件夹的用途,以及删除它们有多安全,特别是在可移植性方面

  • 我知道我需要
    缓存
    文件夹,因为它包含 下载的依赖项
  • 守护进程
    文件夹似乎只包含 日志
  • workers
    对我来说显然是空的
  • wrapper
    似乎无关紧要,因为我不使用gradle wrapper。为什么它还要下载所有这些包装
  • 不知道本地的

目录布局在其用户指南的章节中进行了描述

├── caches                   // <1>
│   ├── 4.8                  // <2>
│   ├── 4.9                  // <2>
│   ├── ⋮
│   ├── jars-3               // <3>
│   └── modules-2            // <3>
├── daemon                   // <4>
│   ├── ⋮
│   ├── 4.8
│   └── 4.9
├── init.d                   // <5>
│   └── my-setup.gradle
├── wrapper
│   └── dists                // <6>
│       ├── ⋮
│       ├── gradle-4.8-bin
│       ├── gradle-4.9-all
│       └── gradle-4.9-bin
└── gradle.properties        // <7>
├── 缓存//
│   ├── 4.8                  // 
│   ├── 4.9                  // 
│   ├── ⋮
│   ├── jars-3//
│   └── 模块-2//
├── 守护进程//
│   ├── ⋮
│   ├── 4.8
│   └── 4.9
├── init.d//
│   └── my-setup.gradle
├── 包装纸
│   └── 区//
│       ├── ⋮
│       ├── gradle-4.8-bin
│       ├── gradle-4.9-all
│       └── gradle-4.9-bin
└── gradle.properties//
  • 全局缓存目录(适用于非项目特定的所有内容)
  • 特定于版本的缓存(例如,支持增量构建)
  • 共享缓存(例如,用于依赖项的工件)
  • 注册处及
  • 全球的
  • 全球的
  • 从4.10版开始,Gradle会自动清理其用户主目录。当Gradle守护进程停止或关闭时,清理将在后台运行。如果使用
    --no daemon
    ,它将在构建会话后在前台运行,并带有可视进度指示器

    定期(最多每24小时)应用以下清理策略:

    • 检查
      缓存//
      中特定于版本的缓存是否仍在使用中。否则,发布版本的目录将在30天不活动后删除,快照版本的目录将在7天不活动后删除
    • 检查
      caches/
      中的共享缓存(例如
      jars-*
      )是否仍在使用中。如果没有Gradle版本仍然使用它们,它们将被删除
    • caches/
      (例如
      jars-3
      modules-2
      )中,检查当前Gradle版本使用的共享缓存中的文件的上次访问时间。根据文件是否可以在本地重新创建或必须从远程存储库再次下载,文件将分别在7天或30天未被访问后被删除
    • 检查
      wrapper/dists/
      中的Gradle发行版是否仍在使用,即是否有相应的特定于版本的缓存目录。未使用的分发版将被删除
    对于像Jansi这样的库,
    native
    似乎包含(比如
    .so
    .dll
    ):它需要它们提供丰富的控制台输出(比如输出中的颜色)。该特性的代码没有文档记录,但是您可以查看一下。特别是对
    ~/.gradle/native/jansi/1.17.1/linux64
    (在我的机器上;您可以通过在自定义gradle任务中打印
    System.getProperties()
    来检查)

    工作人员
    中所述的工作人员

    wrappers
    可以通过IDE下载。基本上,如果这个目录是非空的,这意味着您实际上至少使用过一次包装器