How does Gradle store downloaded jar files on the local file system? Maven stores them in the .m2
directory under USER_HOME
, but where does Gradle store them? I checked the .gradle
folder there, but saw only compiled scripts.
This question is related to
gradle
Gradle caches artifacts in USER_HOME/.gradle
folder. The compiled scripts are usually in the .gradle
folder in your project folder.
If you can't find the cache, maybe it's because you have not cached any artifacts yet. You can always see where Gradle has cached artifacts with a simple script:
apply plugin: 'java'
repositories{
mavenCentral()
}
dependencies{
compile 'com.google.guava:guava:12.0'
}
task showMeCache << {
configurations.compile.each { println it }
}
Now if you run gradle showMeCache
it should download the deps into cache and print the full path.
On Mac, Linux and Windows i.e. on all 3 of the major platforms, Gradle stores dependencies at:
~/.gradle/caches/modules-2/files-2.1
On my windows machine with "Buildship 2.0.2" plugin installed in eclipse, dependencies are stored :
$USER_HOME.gradle\caches\modules-2\files-2.1
Many answers are correct! I want to add that you can easily find your download location with
gradle --info build
like described in https://stackoverflow.com/a/54000767/4471199.
New downloaded artifacts will be shown in stdout:
Downloading https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.1.7.RELEASE/spring-boot-parent-2.1.7.RELEASE.pom to /tmp/gradle_download551283009937119777bin
In this case, I used the docker image gradle:5.6.2-jdk12
.
As you can see, the docker container uses /tmp
as download location.
You can use the gradle argument --project-cache-dir "/Users/whatever/.gradle/"
to force the gradle cache directory.
In this way you can be darn sure you know what directory is being used (as well as create different caches for different projects)
In fact the cache location depends on the GRADLE_USER_HOME
environment variable value.
By default, it is $USER_HOME/.gradle
on Unix-OS based and %userprofile%.\gradle
on Windows.
But if you set this variable, the cache directory would be located from this path.
And whatever the case, you should dig into caches\modules-2\files-2.1
to find the dependencies.
I am on windows,
You should be able find the dependencies inside
$USER_HOME.gradle\caches\artifacts-24\filestore
It took me a while to realize this, hence the additional answer. Hopefully it can save folks time. Note that if you are running sudo gradle
the dependencies may not be in your home directory, even if sudo echo $HOME
returns /Users/<my-non-root-user>/
. On my Mac, Gradle was caching the dependencies in /private/var/root/.gradle/caches/
.
Gradle's local repository folder is:
Defined dependencies will be loaded from remote repositories into gradle's local repository folder. For each loaded file, gradle will be create a new folder named with md5 value of the original file (pom,jar,..). Full path for the dependency file is made up from :
If our defined dependency is:
Then the library will be loaded into :
In Windows 10 PC, it is saved at:
C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
If you want your dependency files to be in some specific folder you can simply use a copy
task for it. For Eg.
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
For my case, I was using an Ivy repository, and my Gradle dependencies were stored in ~/.ivy2/
.
In case it is an Android gradle project - you can find the android libraries below your $ANDROID_HOME/extras/android/m2repository folder
Source: Stackoverflow.com