Gradle如何在本地文件系统上存储下载的jar文件? Maven将它们存储在 USER_HOME 下的 .m2 目录中,但是Gradle将它们存储在哪里?我检查了那里的 .gradle 文件夹,但只看到了编译过的脚本 .
USER_HOME
.m2
.gradle
Gradle缓存 USER_HOME/.gradle 文件夹中的工件 . 编译的脚本通常位于项目文件夹的 .gradle 文件夹中 .
USER_HOME/.gradle
如果你找不到缓存,也许是因为你尚未缓存任何工件 . 您始终可以通过简单的脚本查看Gradle缓存工件的位置:
apply plugin: 'java' repositories{ mavenCentral() } dependencies{ compile 'com.google.guava:guava:12.0' } task showMeCache << { configurations.compile.each { println it } }
现在如果你运行 gradle showMeCache 它应该将deps下载到缓存并打印完整路径 .
gradle showMeCache
在Mac,Linux和Windows上,即在所有3个主要平台上,Gradle将依赖关系存储在:
~/.gradle/caches/modules-2/files-2.1
如果您希望您的依赖项文件位于某个特定文件夹中,则只需使用 copy 任务即可 . 对于Eg .
copy
task copyDepJars(type: Copy) { from configurations.compile into 'C:\\Users\\athakur\\Desktop\\lib' }
在Windows 10 PC中,它保存在:
C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
我在窗户上,
你应该能够在里面找到依赖项
$ USER_HOME.gradle \缓存\文物-24 \文件存储
Gradle的本地存储库文件夹是:
定义的依赖项将从远程存储库加载到gradle的本地存储库文件夹中 . 对于每个加载的文件,gradle将创建一个以原始文件(pom,jar,..)的md5值命名的新文件夹 . 依赖项文件的完整路径由以下内容组成:
如果我们定义的依赖是:
然后该库将被加载到:
您可以使用gradle参数 --project-cache-dir "/Users/whatever/.gradle/" 强制使用gradle缓存目录 .
--project-cache-dir "/Users/whatever/.gradle/"
通过这种方式,您可以确定您知道正在使用的目录(以及为不同的项目创建不同的缓存)
如果它是Android gradle项目 - 您可以在$ ANDROID_HOME / extras / android / m2repository文件夹下找到android库
我花了一段时间才意识到这一点,因此得到了额外的答案 . 希望它能节省大量时间 . 请注意,如果您正在运行 sudo gradle ,则依赖项可能不在您的主目录中,即使 sudo echo $HOME 返回 /Users/<my-non-root-user>/ . 在我的Mac上,Gradle正在缓存 /private/var/root/.gradle/caches/ 中的依赖项 .
sudo gradle
sudo echo $HOME
/Users/<my-non-root-user>/
/private/var/root/.gradle/caches/
实际上,缓存位置取决于 GRADLE_USER_HOME 环境变量值 . 默认情况下,在基于Unix-OS的情况下为 $USER_HOME/.gradle ,在Windows上为 %userprofile%.\gradle .但是,如果设置此变量,则缓存目录将位于此路径中 .
GRADLE_USER_HOME
$USER_HOME/.gradle
%userprofile%.\gradle
无论如何,你应该深入研究 caches\modules-2\files-2.1 以找到依赖关系 .
caches\modules-2\files-2.1
在android studio中,执行以下步骤来检查gradle下载的jar文件 .
将项目结构视图设置为"Project"
在底部外部库部分可用,展开它 .
在这里您可以看到下载的jar文件 .
在我的Windows机器上安装了“Buildship 2.0.2”插件,存储了依赖项:
$ USER_HOME.gradle \缓存\模块-2 \文件-2.1
对于我的情况,我使用的是Ivy存储库,我的Gradle依赖项存储在 ~/.ivy2/ 中 .
~/.ivy2/
我在搜索这个答案时偶然发现了这个问题 . 如果您使用的是intellij,则可以导航到文件位置,但在项目浏览器中打开外部lib文件夹,右键单击jar,然后选择“打开库设置” .
14 回答
Gradle缓存
USER_HOME/.gradle
文件夹中的工件 . 编译的脚本通常位于项目文件夹的.gradle
文件夹中 .如果你找不到缓存,也许是因为你尚未缓存任何工件 . 您始终可以通过简单的脚本查看Gradle缓存工件的位置:
现在如果你运行
gradle showMeCache
它应该将deps下载到缓存并打印完整路径 .在Mac,Linux和Windows上,即在所有3个主要平台上,Gradle将依赖关系存储在:
如果您希望您的依赖项文件位于某个特定文件夹中,则只需使用
copy
任务即可 . 对于Eg .在Windows 10 PC中,它保存在:
我在窗户上,
你应该能够在里面找到依赖项
$ USER_HOME.gradle \缓存\文物-24 \文件存储
Gradle的本地存储库文件夹是:
定义的依赖项将从远程存储库加载到gradle的本地存储库文件夹中 . 对于每个加载的文件,gradle将创建一个以原始文件(pom,jar,..)的md5值命名的新文件夹 . 依赖项文件的完整路径由以下内容组成:
如果我们定义的依赖是:
然后该库将被加载到:
您可以使用gradle参数
--project-cache-dir "/Users/whatever/.gradle/"
强制使用gradle缓存目录 .通过这种方式,您可以确定您知道正在使用的目录(以及为不同的项目创建不同的缓存)
如果它是Android gradle项目 - 您可以在$ ANDROID_HOME / extras / android / m2repository文件夹下找到android库
我花了一段时间才意识到这一点,因此得到了额外的答案 . 希望它能节省大量时间 . 请注意,如果您正在运行
sudo gradle
,则依赖项可能不在您的主目录中,即使sudo echo $HOME
返回/Users/<my-non-root-user>/
. 在我的Mac上,Gradle正在缓存/private/var/root/.gradle/caches/
中的依赖项 .实际上,缓存位置取决于
GRADLE_USER_HOME
环境变量值 . 默认情况下,在基于Unix-OS的情况下为$USER_HOME/.gradle
,在Windows上为%userprofile%.\gradle
.但是,如果设置此变量,则缓存目录将位于此路径中 .
无论如何,你应该深入研究
caches\modules-2\files-2.1
以找到依赖关系 .在android studio中,执行以下步骤来检查gradle下载的jar文件 .
将项目结构视图设置为"Project"
在底部外部库部分可用,展开它 .
在这里您可以看到下载的jar文件 .
在我的Windows机器上安装了“Buildship 2.0.2”插件,存储了依赖项:
$ USER_HOME.gradle \缓存\模块-2 \文件-2.1
对于我的情况,我使用的是Ivy存储库,我的Gradle依赖项存储在
~/.ivy2/
中 .我在搜索这个答案时偶然发现了这个问题 . 如果您使用的是intellij,则可以导航到文件位置,但在项目浏览器中打开外部lib文件夹,右键单击jar,然后选择“打开库设置” .