Should the .gradle folder be added to version control?

Gradle creates a folder called .gradle. Should I track it with my version control (i.e. git)?

More importantly, why / why not?


Should I track the .gradle directory?

No. It can safely be ignored.


Why should I ignore it?

It's purely for caching information, you don't want it in your repo because:

  • it can get big and be full of binary files
  • there can be machine specific data in there
  • there's a lot of churn in there (you'd be constantly committing changes to files in there)
  • everything in there can be completely re-generated whenever it is needed anyway

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).

You can tell the "cache directory" nature of the directory by the name of the switch that lets you change where it goes: "--project-cache-dir".

Though I hate having binary files in my source tree, I usually just end up adding the directory to my ignore file because somewhere along the line I'll forget to use the switch from some command line or from my IDE or something and then end up having to deal with the directory anyway.


How do I ignore it?

Git users can add a line with just .gradle to the .gitgnore file and Git will ignore all files in any directory with that name.

Mercurial users will want to look up the .hgignore file.

For other version control systems, refer to the documentation - they all have a feature to support this.


The .gradle folder contains different calculated information about your gradle build (e.g. cached outputs/input information). You definitely shouldn't check that folder into your version control system.


You don't need to keep the .gradle folder.

Because once you execute gradle build command again, you can make almost the same .gradle folder again.

But when you use the gradle.setting file under .gradle you might need to move it to root folder of the project.