.gradle 文件夹的每个子文件夹的用途是什么?
What are each of the subfolders of the .gradle folder for?
我很惊讶我在任何地方都找不到这个,但无论如何,我想知道 .gradle
文件夹中每个文件夹的用途,以及删除它们的安全性,尤其是在便携性方面。
- 我知道我需要
caches
文件夹,因为它包含
下载的依赖项。
daemon
文件夹似乎只包含
日志?
workers
对我来说显然是空的
wrapper
似乎无关紧要,因为我不使用 gradle 包装器。为什么它甚至下载所有这些包装器?
- 不知道
native
。
目录布局在其用户指南的 "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>
- 全局缓存目录(针对所有非项目特定的内容)
- 特定于版本的缓存(例如支持增量构建)
- 共享缓存(例如,用于依赖项的工件)
- Gradle Daemon
的注册表和日志
- 全球initialization scripts
- Gradle Wrapper
下载的发行版
- 全球Gradle configuration properties
从 4.10 版开始,Gradle 自动清理其用户主目录。当 Gradle 守护程序停止或关闭时,清理在后台运行。如果使用 --no-daemon
,它会在构建会话后在前台运行,并带有可视进度指示器。
定期应用以下清理策略(最多每 24 小时一次):
- 检查
caches/<gradle-version>/
中特定于版本的缓存是否仍在使用中。如果不是,发布版本的目录在 30 天不活动后删除,快照版本在 7 天不活动后删除。
- 检查
caches/
(例如 jars-*
)中的共享缓存是否仍在使用中。如果没有 Gradle 版本仍在使用它们,它们将被删除。
- 检查
caches/
中当前 Gradle 版本(例如 jars-3
或 modules-2
)使用的共享缓存中的文件上次访问时间。根据文件是可以在本地重新创建还是必须再次从远程存储库下载,它将分别在 7 天或 30 天未被访问后删除。
- Gradle
wrapper/dists/
中的发行版被检查是否仍在使用,即是否有相应的特定于版本的缓存目录。未使用的分配被删除。
native
似乎包含 platform-specific dependencies (like .so
, .dll
) for libraries like Jansi: it needs them to provide rich console output (like colours in the output). The code for that features is not documented, but you can take a look here. Particularly 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 for the workers described in Workers API.
wrappers
可以被IDE下载。基本上,如果您的目录非空,则意味着您实际上至少使用过一次包装器。
我很惊讶我在任何地方都找不到这个,但无论如何,我想知道 .gradle
文件夹中每个文件夹的用途,以及删除它们的安全性,尤其是在便携性方面。
- 我知道我需要
caches
文件夹,因为它包含 下载的依赖项。 daemon
文件夹似乎只包含 日志?workers
对我来说显然是空的wrapper
似乎无关紧要,因为我不使用 gradle 包装器。为什么它甚至下载所有这些包装器?- 不知道
native
。
目录布局在其用户指南的 "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>
- 全局缓存目录(针对所有非项目特定的内容)
- 特定于版本的缓存(例如支持增量构建)
- 共享缓存(例如,用于依赖项的工件)
- Gradle Daemon 的注册表和日志
- 全球initialization scripts
- Gradle Wrapper 下载的发行版
- 全球Gradle configuration properties
从 4.10 版开始,Gradle 自动清理其用户主目录。当 Gradle 守护程序停止或关闭时,清理在后台运行。如果使用 --no-daemon
,它会在构建会话后在前台运行,并带有可视进度指示器。
定期应用以下清理策略(最多每 24 小时一次):
- 检查
caches/<gradle-version>/
中特定于版本的缓存是否仍在使用中。如果不是,发布版本的目录在 30 天不活动后删除,快照版本在 7 天不活动后删除。 - 检查
caches/
(例如jars-*
)中的共享缓存是否仍在使用中。如果没有 Gradle 版本仍在使用它们,它们将被删除。 - 检查
caches/
中当前 Gradle 版本(例如jars-3
或modules-2
)使用的共享缓存中的文件上次访问时间。根据文件是可以在本地重新创建还是必须再次从远程存储库下载,它将分别在 7 天或 30 天未被访问后删除。 - Gradle
wrapper/dists/
中的发行版被检查是否仍在使用,即是否有相应的特定于版本的缓存目录。未使用的分配被删除。
native
似乎包含 platform-specific dependencies (like .so
, .dll
) for libraries like Jansi: it needs them to provide rich console output (like colours in the output). The code for that features is not documented, but you can take a look here. Particularly 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 for the workers described in Workers API.
wrappers
可以被IDE下载。基本上,如果您的目录非空,则意味着您实际上至少使用过一次包装器。