Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
本地文件系统上的Gradle存储_Gradle - Fatal编程技术网

本地文件系统上的Gradle存储

本地文件系统上的Gradle存储,gradle,Gradle,Gradle如何在本地文件系统上存储下载的jar文件?Maven将它们存储在USER\u HOME下的.m2目录中,但Gradle将它们存储在哪里?我检查了那里的.gradle文件夹,但只看到编译过的脚本。gradle在USER\u HOME/.gradle文件夹中缓存工件。编译后的脚本通常位于项目文件夹中的.gradle文件夹中 如果找不到缓存,可能是因为您还没有缓存任何工件。通过一个简单的脚本,您总能看到Gradle缓存工件的位置: apply插件:“java” 存储库{ mavenCent

Gradle如何在本地文件系统上存储下载的jar文件?Maven将它们存储在
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.1

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

    • $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是的,请在控制台中查看您的任务打印无源文件,并且不要复制依赖项!!