是否应该将. gradle 文件夹添加到版本控制中?

Gradle 创建了一个名为 .gradle的文件夹。我应该用我的版本控制(即 git)来跟踪它吗?

更重要的是,为什么不呢?

20547 次浏览

那个。Gradle 文件夹包含了关于你的 gradle 构建的不同计算信息(例如缓存的输出/输入信息)。您绝对不应该将该文件夹签入到您的版本控制系统中。

我应该追踪. gradle 目录吗?

不,可以安全地忽略它。


我为什么要无视它?

它纯粹是为了缓存信息,你不希望它在你的回购,因为:

  • 它可以变得很大,并且充满了二进制文件
  • 里面可能有机器特定的数据
  • 这里有很多变化(你会不断地提交对文件的更改)
  • 无论如何,只要需要,里面的一切都可以完全重新生成

It's basically a temp directory that Gradle is dropping in the middle of your source code (why Gradle thinks that's an appropriate thing to do is a different question).

您可以通过交换机的名称来告诉目录的“缓存目录”性质,这个名称允许您更改目录的去向: “ 项目缓存目录”。

尽管我讨厌在源代码树中使用二进制文件,但是我通常只是把目录添加到忽略文件中,因为在整个过程中,我会忘记使用来自某个命令行或 IDE 或其他地方的开关,最终不得不处理该目录。


我怎么能无视它呢?

Git 用户可以只用 .gradle添加一行到 .gitgnore文件中,Git 将忽略任何目录中具有该名称的所有文件。

Mercurial 用户将希望查找 。 hgignore文件。

对于其他版本控制系统,请参考文档-它们都有一个特性来支持这一点。

你不需要保留. gradle 文件夹。

因为一旦再次执行 gradle build 命令,就可以再次创建几乎相同的.gradle 文件夹。

但是当您使用。你可能需要将它移动到项目的根文件夹。

当我们开始分级时,它创建。主目录中的 gradle 文件夹。它由本机(关于系统的信息)和缓存组成。缓存还包括插件和所有其他 jar 依赖项。

当我们第一次构建这个项目时,它会下载依赖项和插件,并在这里检查它们。下次我们需要他们的时候,就从这里开始。即使我们需要在 eclipse 中使用它们来编译代码(= > gradle eclipse) ,它的依赖关系也是从缓存中添加的

因为它会不断更新和增加,当你运行梯度。所以我想我们没有把它添加到版本控制。

我刚来 Gradle,觉得。Gradle 文件夹将包含通用信息,如依赖映射等,并上传到版本控制。然后,我尝试使用版本控制中的代码(包括。渐变文件夹和运行到错误。原来。Gradle 文件夹包含计算机特定的信息,用于在本地缓存。 不包括。在 gradle 文件夹中进行版本控制,并尝试用代码设置一个新的机器,然后由 gradle 守护进程来完成剩下的工作。