本地文件系统上的Gradle存储
Gradle如何在本地文件系统上存储下载的jar文件?Maven将它们存储在本地文件系统上的Gradle存储,gradle,Gradle,Gradle如何在本地文件系统上存储下载的jar文件?Maven将它们存储在USER\u HOME下的.m2目录中,但Gradle将它们存储在哪里?我检查了那里的.gradle文件夹,但只看到编译过的脚本。gradle在USER\u HOME/.gradle文件夹中缓存工件。编译后的脚本通常位于项目文件夹中的.gradle文件夹中 如果找不到缓存,可能是因为您还没有缓存任何工件。通过一个简单的脚本,您总能看到Gradle缓存工件的位置: apply插件:“java” 存储库{ mavenCent
USER\u HOME
下的.m2
目录中,但Gradle将它们存储在哪里?我检查了那里的.gradle
文件夹,但只看到编译过的脚本。gradle在USER\u HOME/.gradle
文件夹中缓存工件。编译后的脚本通常位于项目文件夹中的.gradle
文件夹中
如果找不到缓存,可能是因为您还没有缓存任何工件。通过一个简单的脚本,您总能看到Gradle缓存工件的位置:
apply插件:“java”
存储库{
mavenCentral()
}
依赖关系{
编译'com.google.guava:guava:12.0'
}
任务showMeCache doLast(){
configurations.compileClasspath.each{println it}
}
现在,如果您运行
gradle showMeCache
它应该将依赖项下载到缓存中并打印完整路径。如果您希望依赖项文件位于某个特定文件夹中,只需使用复制任务即可。例如
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
我在窗户上
您应该能够找到其中的依赖项
$USER_HOME.gradle\caches\artifacts-24\filestore在Mac、Linux和Windows上,即在所有三种主要平台上,gradle将依赖项存储在:
~/.gradle/caches/modules-2/files-2.1
如果是Android gradle项目,您可以在Android studio中的$Android_HOME/extras/Android/m2repository文件夹下找到Android库,请执行以下步骤检查gradle下载的jar文件
将项目结构视图设置为“项目”
在“可用外部库”部分的底部,展开它
在这里您可以看到下载的jar文件。
在eclipse中安装了“Buildship 2.0.2”插件的windows计算机上,依赖项存储在:
$USER_HOME.gradle\caches\modules-2\files-2.1gradle的本地存储库文件夹是:
- $USER_HOME/.gradle/caches/modules-2/files-2.1
定义的依赖项将从远程存储库加载到gradle的本地存储库文件夹中。对于每个加载的文件,gradle将创建一个新文件夹,名为原始文件的md5值(pom、jar,…)。依赖项文件的完整路径由以下部分组成:
- groupid+artifactid+version+文件MD5\u值+文件名
如果我们定义的依赖关系是:
- 编译“org.springframework:springjdbc:4.3.4.RELEASE”
然后将库加载到:
- /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring jdbc/4.3.4.RELEASE/42175D194CF6A7C716C0887F30255E5C0A5262C/spring-jdbc-4.3.4.RELEASE.jar
在我的案例中,我使用的是一个常春藤存储库,我的Gradle依赖项存储在~/.ivy2/
我花了一段时间才意识到这一点,因此得到了额外的答案。希望它能节省人们的时间。请注意,如果您正在运行sudo-gradle
,即使sudo-echo$home
返回/Users/
,依赖项也可能不在您的主目录中。在我的Mac电脑上,Gradle正在将依赖项缓存在/private/var/root/.Gradle/caches/
中。在Windows 10 PC上,它保存在:
C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
C:\Users\\.gradle\caches\modules-2\files-2.1\
您可以使用gradle参数--project cache dir”/Users/which/.gradle/“
强制使用gradle缓存目录
通过这种方式,您可以确信您知道正在使用的目录(以及为不同的项目创建不同的缓存)我在搜索此答案时偶然发现了这一点。如果您使用的是intellij,则可以导航到文件位置,但在项目资源管理器中打开外部库文件夹,右键单击jar,然后选择“打开库设置” 事实上,缓存位置取决于GRADLE\u USER\u HOME
环境变量值。
默认情况下,它在基于Unix操作系统的系统上是$USER\u HOME/.gradle
,在Windows系统上是%userprofile%.\gradle
。
但如果设置此变量,缓存目录将从此路径定位
不管是什么情况,您都应该深入到caches\modules-2\files-2.1
中查找依赖项。许多答案都是正确的!
我想补充一点,你可以很容易地找到你的下载位置
gradle --info build
如中所述
新下载的工件将显示在标准输出中:
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 2.4 Mac上,它(当前)位于~/.Gradle/caches/modules-2/files-2.1
。我使用windows 10,它保存在:C:\Users[user]\.Gradle\caches\modules-2\files-2.1我的Gradle 2.4 Mac上,它(当前)位于~/.gradle/caches/modules-2/files-2.1
中。左移位运算符左移位运算符已弃用,但仍然有效(从gradle 4.10开始)。它会一直工作到Gradle 5谢谢你用缓存/modules-2/files-2.1
回答这个问题,与这里的其他答案不同。cd%userprofile%\.gradle\caches\modules-2\files-2.1
-在Windows.MD5上定位此目录的短命令已被弃用,现在它使用SHA1值。此后,文件\u散列\u值变得更通用。感谢您的评论。我可以强制将该路径更改到其他位置吗?在MacOS上也是如此actually@MohammadFaisal是的,请在控制台中查看您的任务打印无源文件,并且不要复制依赖项!!