Gradle 如何将下载的 jar 文件存储在本地文件系统中?Maven 将它们存储在.m2
目录下USER_HOME
,但 Gradle 将它们存储在哪里?我检查了.gradle
那里的文件夹,但只看到编译的脚本。
15 回答
在 Mac、Linux 和 Windows 上,即在所有 3 个主要平台上,Gradle 将依赖项存储在:
~/.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
它,它应该将依赖项下载到缓存中并打印完整路径。
在 Windows 10 PC 中,它保存在:
C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1\
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
实际上缓存位置取决于GRADLE_USER_HOME
环境变量值。默认情况下,它$USER_HOME/.gradle
基于 Unix-OS 和%userprofile%.\gradle
Windows。
但是,如果您设置此变量,缓存目录将位于此路径中。
无论如何,您都应该深入caches\modules-2\files-2.1
研究以找到依赖项。
如果您希望您的依赖文件位于某个特定文件夹中,您可以简单地使用一个copy
任务。例如。
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
我在窗户上,
您应该能够找到里面的依赖项
$USER_HOME.gradle\caches\artifacts-24\filestore
很多答案都是正确的!我想补充一点,您可以通过以下方式轻松找到下载位置
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
用作下载位置。
您可以使用 gradle 参数--project-cache-dir "/Users/whatever/.gradle/"
来强制使用 gradle 缓存目录。
通过这种方式,您可以确定您知道正在使用哪个目录(以及为不同的项目创建不同的缓存)
如果它是一个 Android gradle 项目 - 您可以在 $ANDROID_HOME/extras/android/m2repository 文件夹下找到 android 库
在我的安装了“Buildship 2.0.2”插件的 Windows 机器上,依赖项被存储:
$USER_HOME.gradle\caches\modules-2\files-2.1
我花了一段时间才意识到这一点,因此有了额外的答案。希望它可以节省人们的时间。请注意,如果您正在运行sudo gradle
依赖项,则可能不在您的主目录中,即使sudo echo $HOME
返回/Users/<my-non-root-user>/
. 在我的 Mac 上,Gradle 将依赖项缓存在/private/var/root/.gradle/caches/
.
就我而言,我使用的是 Ivy 存储库,我的 Gradle 依赖项存储在~/.ivy2/
.