How to clear gradle cache?
As @Bradford20000 pointed out in the comments, there might be a gradle.properties
file as well as global gradle scripts located under $HOME/.gradle
. In such case special attention must be paid when deleting the content of this directory.
The .gradle/caches
directory holds the Gradle
build cache. So if you have any error about build cache, you can delete it.
The --no-build-cache option will run gradle without the build cache.
Daemon on MS Windows
If you're on Windows, you'll need to kill the daemon before it allows you to clear those directories. See Kill all Gradle Daemons Regardless Version? for more info.
How to clear specific gradle cache files when running the Clean project command?
That "Clean project" menu item under the hood appears to do a couple of things (based on the output of the Gradle Console window when you click it):
- A gradle clean, the equivalent of calling
./gradlew clean
- Generate sources and dependencies for a debug build, including a mockable Android sources jar if needed.
I would make your task a dependency for the Gradle clean task, so that whenever the project is cleaned, this task is also invoked. This can be achieved by adding the line clean.dependsOn clearLibCache
in your build.gradle
after you declare the task.
How can I force gradle to redownload dependencies?
Generally, you can refresh dependencies in your cache with the command line option --refresh-dependencies. You can also delete the cached files under ~/.gradle/caches
. With the next build Gradle would attempt to download them again.
What is your specific use case? Do you use dynamic dependency versions or SNAPSHOT versions?
On Unix systems, you can delete all the existing artifacts (artifacts and metadata) Gradle has downloaded using:
rm -rf $HOME/.gradle/caches/
Note that --refresh-dependencies won't always re-download every artifact; it will use existing copies if they match what exists in the repository. From the Gradle User Guide, refreshing dependencies:
The --refresh-dependencies option tells Gradle to ignore all cached entries for resolved modules and artifacts. A fresh resolve will be performed against all configured repositories, with dynamic versions recalculated, modules refreshed, and artifacts downloaded. However, where possible Gradle will check if the previously downloaded artifacts are valid before downloading again. This is done by comparing published SHA1 values in the repository with the SHA1 values for existing downloaded artifacts.
[...]
It’s a common misconception to think that using --refresh-dependencies will force download of dependencies. This is not the case: Gradle will only perform what is strictly required to refresh the dynamic dependencies. This may involve downloading new listing or metadata files, or even artifacts, but if nothing changed, the impact is minimal.
How to clear $HOME/.gradle/caches/ whenever I commit in git?
It seems your script is run after git commit
is done. Is it possible to clear the cache in your script? If not, it could be done in a post-commit
hook.
Touch a file named post-commit
in .git/hooks/ and make it executable. It could be implemented like this in bash
#!/bin/bash
rm -rf $HOME/.gradle/cache/
By default, whenever a commit is made in the current repository, the hook is triggered.
Related Topics
How to Change Spinner Text Size and Text Color
Custom Drawable For Progressbar/Progressdialog
Playing an Arbitrary Tone With Android
Show Image View from File Path
How to Save/Store Objects in Sharedpreferences on Android
How to Parse the Androidmanifest.Xml File Inside an .Apk Package
Sending Message Through Whatsapp
Tileprovider Using Local Tiles
How to Use Scrollview in Android
How to Define a Min and Max Value For Edittext in Android
Android Get Free Size of Internal/External Memory
How to Add a Jar in External Libraries in Android Studio
How to Use Support Fileprovider For Sharing Content to Other Apps
How to Implement a Custom Alertdialog View
Running Google Maps V2 on the Android Emulator