Gradle如何在本地文件系统中存储下载的jar文件?Maven将它们存储在USER_HOME下的.m2目录中,但是Gradle将它们存储在哪里呢?我检查了那里的.gradle文件夹,但只看到编译过的脚本。
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,它会把依赖项下载到缓存中并打印完整的路径。
如果你想要你的依赖文件在某个特定的文件夹中,你可以简单地为它使用一个复制任务。如。
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
在Mac, Linux和Windows上,即在所有3个主要平台上,Gradle存储依赖:
~/.gradle/caches/modules-2/files-2.1
如果这是一个Android gradle项目,你可以在$ANDROID_HOME/extras/ Android /m2repository文件夹下找到Android库
在android studio中执行以下步骤检查gradle下载的jar文件。
将项目结构视图设置为“项目” 在底部的外部库部分可用,展开它。 在这里您可以看到下载的jar文件。
在我的windows机器上,eclipse中安装了“Buildship 2.0.2”插件,依赖项被存储:
USER_HOME.gradle美元- 2.1 \模块2 \ \缓存文件
Gradle的本地存储库文件夹是:
USER_HOME美元/ .gradle /缓存/模块2 - 2.1 /文件
已定义的依赖将从远程存储库加载到gradle的本地存储库文件夹中。对于每个加载的文件,gradle将创建一个新文件夹,命名为原始文件的md5值(pom,jar,..)。依赖文件的完整路径由以下组成:
groupid + artifactid + FILE_MD5_VALUE +
如果我们定义的依赖项是:
编译的org.springframework: spring jdbc: 4.3.4.RELEASE
然后库将被加载到:
USER_HOME美元/ .gradle /缓存/模块2 /文件- 2.1 / org.springframework / spring jdbc / 4.3.4.RELEASE / 42175 d194cf6aa7c716c0887f30255e5c0a5262c / spring-jdbc-4.3.4.RELEASE.jar
我花了一段时间才意识到这一点,因此有了额外的答案。希望它能节省人们的时间。注意,如果你正在运行sudo gradle,依赖项可能不在你的主目录下,即使sudo echo $ home返回/Users/<my-non-root-user>/。在我的Mac上,Gradle正在/private/var/root/. Gradle /caches/中缓存依赖项。
你可以使用gradle参数——project-cache-dir "/Users/whatever/。Gradle /"来强制Gradle缓存目录。
通过这种方式,您可以确保您知道正在使用的目录(以及为不同的项目创建不同的缓存)
我只是在寻找答案的时候偶然发现了这个问题。如果您正在使用intellij,您可以导航到文件位置,但是在项目资源管理器中打开外部lib文件夹,右键单击jar,并选择Open Library Settings。
事实上,缓存位置取决于GRADLE_USER_HOME环境变量值。 缺省值为$USER_HOME/。gradle基于Unix-OS和%userprofile%。\gradle在Windows上。 但是如果您设置了这个变量,缓存目录将从这个路径定位。
无论哪种情况,你都应该深入研究缓存\模块-2\文件-2.1来找到依赖项。
很多答案都是正确的! 我想补充的是,你可以很容易地找到你的下载位置
gradle --info build
如https://stackoverflow.com/a/54000767/4471199所述。
新下载的工件将显示在stdout中:
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作为下载位置。
推荐文章
- 错误:与依赖项“com.google.code.findbugs:jsr305”冲突
- 如何/何时生成Gradle包装文件?
- 构建被配置为优先选择设置存储库而不是项目存储库,但存储库“maven”是由构建文件“Build .gradle”添加的。
- “需要Gradle 2.10版本。”错误
- 在Android Studio 4.2中,Gradle任务不会显示在Gradle工具窗口中
- Android Studio -没有可调试的应用程序
- 无法找到或加载主类org.gradle.wrapper.GradleWrapperMain
- Android Studio gradle的构建时间太长了
- 在这个版本中使用了已弃用的Gradle特性,使得它与Gradle 5.0不兼容
- 从IntelliJ运行时,如何激活Spring Boot配置文件?
- 如何检查Gradle依赖是否有新版本?
- Android Gradle Apache HttpClient不存在?
- ':app:lintVitalRelease'生成签名apk时出错
- 不能找到方法编译()的参数Gradle
- 警告“Kotlin插件版本与库版本不相同”(但它是!)