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

时间:2017-11-14 14:38:37

标签: gradle directory directory-structure

我很惊讶我无法在任何地方找到它,但无论如何,我想知道.gradle文件夹中每个文件夹的用途,以及删除它们的安全性,特别是在术语上便携性。

  • 我知道我需要caches文件夹,因为它包含。{ 下载的依赖项。
  • daemon文件夹似乎只包含 日志?
  • workers对我来说显然是空的
  • wrapper似乎无关紧要,因为我不使用gradle包装器。为什么甚至下载所有这些包装器?
  • 不知道native

1 个答案:

答案 0 :(得分:0)

目录布局在其用户指南的"The Directories and Files Gradle Uses"一章中进行了说明。

├── 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>
  1. 全局缓存目录(适用于所有非特定于项目的内容)
  2. 版本特定的缓存(例如,支持增量构建)
  3. 共享缓存(例如,用于依赖项的工件)
  4. Gradle Daemon的注册表和日志
  5. 全局initialization scripts
  6. Gradle Wrapper
  7. 下载的发行版
  8. 全局Gradle configuration properties

从版本4.10开始,Gradle会自动清除其用户主目录。当Gradle守护程序停止或关闭时,清理将在后台运行。如果使用--no-daemon,它将在构建会话后以可视进度指示器在前台运行。

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

    检查caches/<gradle-version>/
  • 版本特定的缓存是否仍在使用中。如果不是,则在闲置30天后删除发布版本的目录,在闲置7天后删除快照版本。
  • 检查caches/(例如jars-*)中的共享缓存是否仍在使用中。如果没有Gradle版本仍在使用它们,则会将其删除。
  • 检查caches/中当前Gradle版本使用的共享缓存中的文件(例如jars-3modules-2)的访问时间。根据是可以在本地重新创建文件,还是必须再次从远程存储库下载文件,文件将分别在7天或30天未访问后被删除。
  • 检查wrapper/dists/中的版本分发是否仍在使用,即是否存在相应的特定于版本的缓存目录。未使用的发行版将被删除。

native似乎包含诸如Jansi之类的库的platform-specific dependencies(如.so.dll):它需要它们提供丰富的控制台输出(如输出中的颜色) 。该功能的代码未记录,但是您可以查看here。特别是library.jansi.path system property points~/.gradle/native/jansi/1.17.1/linux64(在我的机器上;您可以通过在自定义的Gradle任务中打印System.getProperties()来进行检查)。

workers seems to be used as a working directory(针对Workers API中所述的工人。

wrappers可以由IDE下载。基本上,如果该目录为非空目录,则意味着您实际上已经至少使用了一次包装器。