【发布时间】:2012-06-05 17:46:14
【问题描述】:
Gradle 如何将下载的 jar 文件存储在本地文件系统中? Maven 将它们存储在USER_HOME 下的.m2 目录中,但是 Gradle 将它们存储在哪里呢?我检查了那里的.gradle 文件夹,但只看到了已编译的脚本。
【问题讨论】:
标签: gradle
Gradle 如何将下载的 jar 文件存储在本地文件系统中? Maven 将它们存储在USER_HOME 下的.m2 目录中,但是 Gradle 将它们存储在哪里呢?我检查了那里的.gradle 文件夹,但只看到了已编译的脚本。
【问题讨论】:
标签: gradle
在 Windows 10 PC 中,它保存在:
C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1\
【讨论】:
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,它应该将依赖项下载到缓存中并打印完整路径。
【讨论】:
~/.gradle/caches/modules-2/files-2.1。
<< 在 Gradle 3.2 上被弃用 mrhaki.blogspot.com/2016/11/…
compileClasspath?
很多答案都是正确的! 我想补充一点,您可以通过
轻松找到您的下载位置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 镜像 gradle:5.6.2-jdk12。
如您所见,docker 容器使用/tmp 作为下载位置。
【讨论】:
实际上缓存位置取决于GRADLE_USER_HOME 环境变量值。
默认情况下,在基于 Unix-OS 上为 $USER_HOME/.gradle,在 Windows 上为%userprofile%.\gradle。
但是如果你设置了这个变量,缓存目录就会从这个路径中找到。
无论如何,您都应该深入caches\modules-2\files-2.1 以查找依赖项。
【讨论】:
您可以使用 gradle 参数 --project-cache-dir "/Users/whatever/.gradle/" 强制 gradle 缓存目录。
通过这种方式,您可以确定您知道正在使用哪个目录(以及为不同的项目创建不同的缓存)
【讨论】:
我花了一段时间才意识到这一点,因此需要额外的答案。希望它可以节省人们的时间。请注意,如果您正在运行sudo gradle,则依赖项可能不在您的主目录中,即使sudo echo $HOME 返回/Users/<my-non-root-user>/。在我的 Mac 上,Gradle 将依赖项缓存在 /private/var/root/.gradle/caches/ 中。
【讨论】:
就我而言,我使用的是 Ivy 存储库,我的 Gradle 依赖项存储在 ~/.ivy2/ 中。
【讨论】:
Gradle 的本地仓库文件夹是:
定义的依赖将从远程仓库加载到 gradle 的本地仓库文件夹中。对于每个加载的文件,gradle 将创建一个以原始文件 (pom,jar,..) 的 md5 值命名的新文件夹。依赖文件的完整路径由:
如果我们定义的依赖是:
然后库将被加载到:
【讨论】:
在 Mac、Linux 和 Windows 上,即在所有 3 个主要平台上,Gradle 将依赖项存储在:
~/.gradle/caches/modules-2/files-2.1
【讨论】:
cd %userprofile%\.gradle\caches\modules-2\files-2.1 — 在 Windows 上定位到此目录的简短命令。
在我的安装了“Buildship 2.0.2”插件的 Windows 机器上,依赖项被存储:
$USER_HOME.gradle\caches\modules-2\files-2.1
【讨论】:
如果它是一个 Android gradle 项目 - 您可以在 $ANDROID_HOME/extras/android/m2repository 文件夹下找到 android 库
【讨论】:
我在窗户上,
你应该可以找到里面的依赖
$USER_HOME.gradle\caches\artifacts-24\filestore
【讨论】:
~/.gradle/caches/modules-2/files-2.1。
如果您希望您的依赖文件位于某个特定文件夹中,您可以简单地使用copy 任务。例如。
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
【讨论】: