为什么 Gradle 缓存目录中有数字?

NVX*_*ARM 7 java gradle

下载的依赖项,例如log4j缓存在Gradle 用户主目录中,~/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j.

但是为什么modules-2andfiles-2.1而不是modulesand files

它看起来不像 Gradle 的版本。例如,当我在我的 PC 上使用 Gradle 6.0 时,没有“6”或“6.0”。

~/.gradle/caches/jars-1
~/.gradle/caches/jars-2
~/.gradle/caches/jars-3
~/.gradle/caches/modules-2
~/.gradle/caches/modules-2/files-2.1
~/.gradle/caches/transforms-1
~/.gradle/caches/transforms-2
Run Code Online (Sandbox Code Playgroud)

dpr*_*dpr 10

这些数字指的是不同版本的 gradle 所需的不同布局。每当新版本的 gradle 中的缓存布局发生重大变化时,这些数字都会增加。

如果新版本的 gradle 仍然使用与前一个相同的缓存布局,则这些数字不会增加。因此新版本可以使用已经存在的缓存而不浪费磁盘空间。

例如,模块、文件和元数据目录的数量随此提交而更改,因为 gradle 1.9 引入了布局更改

https://github.com/gradle/gradle/commit/aace47c2e5f8d137fadc6b07baf84371efb48c09