295

Gradle 如何将下载的 jar 文件存储在本地文件系统中?Maven 将它们存储在.m2目录下USER_HOME,但 Gradle 将它们存储在哪里?我检查了.gradle那里的文件夹,但只看到编译的脚本。

4

15 回答 15

358

在 Mac、Linux 和 Windows 上,即在所有 3 个主要平台上,Gradle 将依赖项存储在:

~/.gradle/caches/modules-2/files-2.1
于 2015-10-18T09:42:14.120 回答
247

Gradle 在USER_HOME/.gradle文件夹中缓存工件。编译后的脚本通常位于.gradle项目文件夹中的文件夹中。

如果找不到缓存,可能是因为您还没有缓存任何工件。您始终可以通过一个简单的脚本查看 Gradle 缓存工件的位置:

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.google.guava:guava:12.0'
}

task showMeCache doLast() {
    configurations.compileClasspath.each { println it }
}

现在,如果您运行gradle showMeCache它,它应该将依赖项下载到缓存中并打印完整路径。

于 2012-05-31T13:25:19.733 回答
35

在 Windows 10 PC 中,它保存在:

C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1\
于 2017-11-17T06:32:55.307 回答
19

Gradle 的本地存储库文件夹是:

  • $USER_HOME/.gradle/caches/modules-2/files-2.1

定义的依赖项将从远程存储库加载到 gradle 的本地存储库文件夹中。对于每个加载的文件,gradle 将创建一个以原始文件 (pom,jar,..) 的 md5 值命名的新文件夹。依赖文件的完整路径由:

  • groupid + artifactid + 版本 + FILE_MD5_VALUE + FILE_NAME

如果我们定义的依赖是:

  • 编译'org.springframework:spring-jdbc:4.3.4.RELEASE'

然后库将被加载到:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4.RELEASE.jar
于 2017-07-05T13:09:29.217 回答
16

实际上缓存位置取决于GRADLE_USER_HOME环境变量值。默认情况下,它$USER_HOME/.gradle基于 Unix-OS 和%userprofile%.\gradleWindows。
但是,如果您设置此变量,缓存目录将位于此路径中。

无论如何,您都应该深入caches\modules-2\files-2.1研究以找到依赖项。

于 2018-11-21T10:58:27.107 回答
15

如果您希望您的依赖文件位于某个特定文件夹中,您可以简单地使用一个copy任务。例如。

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}
于 2015-05-24T06:21:46.727 回答
8

我在窗户上,

您应该能够找到里面的依赖项

$USER_HOME.gradle\caches\artifacts-24\filestore

于 2015-06-15T18:36:02.100 回答
6

很多答案都是正确的!我想补充一点,您可以通过以下方式轻松找到下载位置

gradle --info build

https://stackoverflow.com/a/54000767/4471199中所述。

新下载的工件将显示在标准输出中:

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

在这种情况下,我使用了 docker image gradle:5.6.2-jdk12。如您所见,docker 容器/tmp用作下载位置。

于 2019-09-09T15:33:43.803 回答
3

您可以使用 gradle 参数--project-cache-dir "/Users/whatever/.gradle/"来强制使用 gradle 缓存目录。

通过这种方式,您可以确定您知道正在使用哪个目录(以及为不同的项目创建不同的缓存)

于 2018-04-24T15:21:48.497 回答
2

我只是在寻找这个答案时偶然发现了这个。如果您使用的是 intellij,则可以导航到文件位置,但在项目资源管理器中打开外部 lib 文件夹,右键单击 jar,然后选择 Open Library Settings。在此处输入图像描述

于 2018-10-30T17:48:47.487 回答
1

如果它是一个 Android gradle 项目 - 您可以在 $ANDROID_HOME/extras/android/m2repository 文件夹下找到 android 库

于 2017-05-04T06:51:27.220 回答
1

在我的安装了“Buildship 2.0.2”插件的 Windows 机器上,依赖项被存储:

$USER_HOME.gradle\caches\modules-2\files-2.1

于 2017-06-12T06:59:41.483 回答
1

我花了一段时间才意识到这一点,因此有了额外的答案。希望它可以节省人们的时间。请注意,如果您正在运行sudo gradle依赖项,则可能不在您的主目录中,即使sudo echo $HOME返回/Users/<my-non-root-user>/. 在我的 Mac 上,Gradle 将依赖项缓存在/private/var/root/.gradle/caches/.

于 2017-08-11T19:14:27.263 回答
1

在 android studio 中执行以下步骤来检查 gradle 下载的 jar 文件。

  1. 将项目结构视图设置为“项目”
  2. 在底部可用的外部库部分,展开它。
  3. 在这里你可以看到下载的 jar 文件。 在此处输入图像描述
于 2017-05-04T09:57:16.940 回答
0

就我而言,我使用的是 Ivy 存储库,我的 Gradle 依赖项存储在~/.ivy2/.

于 2017-08-11T18:50:57.733 回答