【问题标题】:Gradle store on local file system本地文件系统上的 Gradle 存储
【发布时间】:2012-06-05 17:46:14
【问题描述】:

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

【问题讨论】:

    标签: gradle


    【解决方案1】:

    在 Windows 10 PC 中,它保存在:

    C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1\
    

    【讨论】:

    【解决方案2】:

    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,它应该将依赖项下载到缓存中并打印完整路径。

    【讨论】:

    • 在我的 Mac for Gradle 2.4 上,它(当前)位于 ~/.gradle/caches/modules-2/files-2.1
    • 左移运算符 << 在 Gradle 3.2 上被弃用 mrhaki.blogspot.com/2016/11/…
    • 左移运算符已弃用,但仍然有效(从 Gradle 4.10 开始)。它将继续工作到 Gradle 5
    • 如何声明compileClasspath
    【解决方案3】:

    很多答案都是正确的! 我想补充一点,您可以通过

    轻松找到您的下载位置
    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 作为下载位置。

    【讨论】:

      【解决方案4】:

      实际上缓存位置取决于GRADLE_USER_HOME 环境变量值。 默认情况下,在基于 Unix-OS 上为 $USER_HOME/.gradle,在 Windows 上为%userprofile%.\gradle
      但是如果你设置了这个变量,缓存目录就会从这个路径中找到。

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                【解决方案9】:

                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

                【讨论】:

                • MD5 已弃用,现在它使用 SHA1 值
                • 之后 FILE_HASH_VALUE 更加通用。感谢您的评论 alphaguy。
                【解决方案10】:

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

                ~/.gradle/caches/modules-2/files-2.1
                

                【讨论】:

                • cd %userprofile%\.gradle\caches\modules-2\files-2.1 — 在 Windows 上定位到此目录的简短命令。
                【解决方案11】:

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

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

                【讨论】:

                  【解决方案12】:

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

                  1. 将项目结构视图设置为“项目”
                  2. 在底部可用的外部库部分,展开它。
                  3. 在这里您可以看到下载的 jar 文件。

                  【讨论】:

                    【解决方案13】:

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

                    【讨论】:

                      【解决方案14】:

                      我在窗户上,

                      你应该可以找到里面的依赖

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

                      【讨论】:

                      • 在我的 Mac for Gradle 2.4 上,它(当前)位于 ~/.gradle/caches/modules-2/files-2.1
                      • 我使用的是windows 10,它保存在:C:\Users[user]\.gradle\caches\modules-2\files-2.1
                      【解决方案15】:

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

                      task copyDepJars(type: Copy) {
                        from configurations.compile
                        into 'C:\\Users\\athakur\\Desktop\\lib'
                      }
                      

                      【讨论】:

                      • 你的任务在控制台打印 NO-SOURCE,不要复制依赖!!
                      猜你喜欢
                      • 1970-01-01
                      • 2022-11-25
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2023-04-04
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多