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

问题描述 投票:93回答:5

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

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

version-control gradle
5个回答
99
投票

我应该跟踪.gradle目录吗?

不,它可以安全地被忽略。


我为什么要忽略它?

它纯粹用于缓存信息,您不希望它在您的仓库中,因为:

  • 它可以变得很大并且充满了二进制文件
  • 那里可以有机器特定的数据
  • 那里有很多流失(你会经常对那里的文件进行更改)
  • 无论如何,只要需要,那里的所有东西都可以完全重新生成

它基本上是Gradle在源代码中间放置的临时目录(为什么Gradle认为这是一个合适的事情是另一个问题)。

您可以通过开关的名称来告诉目录的“缓存目录”性质,它可以让您更改它的位置:“--project-cache-dir”。

虽然我讨厌在我的源代码树中使用二进制文件,但我通常只是将目录添加到我的忽略文件中,因为在某个地方,我会忘记使用某些命令行或我的IDE或其他东西的开关然后结束无论如何必须处理目录。


我怎么忽略它?

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

Mercurial用户想要查找.hgignore文件。

对于其他版本控制系统,请参阅文档 - 它们都具有支持此功能的功能。


12
投票

.gradle文件夹包含有关您的gradle构建的不同计算信息(例如缓存的输出/输入信息)。你绝对不应该在你的版本控制系统中检查该文件夹。


3
投票

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

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

但是当您在.gradle下使用gradle.setting文件时,可能需要将其移动到项目的根文件夹中。


0
投票

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

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

因为它会在你运行gradle时不断更新和添加。所以我想我们不会将它添加到版本控制中。


0
投票

我是Gradle的新手,并认为.gradle文件夹将包含通用信息,例如依赖关系映射等,并将其上传到版本控制上。然后我尝试使用版本控制中的代码(包括.gradle文件夹)设置具有不同操作系统风格和Java版本的新机器并遇到错误。原来,.gradle文件夹包含机器特定信息,用于在本地缓存。不要在版本控制中包含.gradle文件夹,并尝试使用代码设置新机器,gradle守护程序将完成剩下的工作。

热门问题
推荐问题
最新问题