将 gradle 临时缓存目录移动到其他目录

Bjö*_*n P 5 gradle gradlew

我在临时 gradle 缓存目录方面遇到了一些问题。Gradle 首先将所有依赖项下载到 /tmp/gradle_download...bin ,然后再将它们移动到目标目录。

10:55:12.932 [DEBUG] [org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor] Downloading https://${myNexusURL}/nexus/content/groups/../myArtefact.zip to /tmp/gradle_download1430290155040442921bin
Run Code Online (Sandbox Code Playgroud)

我们在 /tmp 上的空间非常有限,但在其他目录上我们有足够的空间。有没有办法更改该目录?

./gradlew -version

------------------------------------------------------------
Gradle 3.0
------------------------------------------------------------

Build time:   2016-08-15 13:15:01 UTC
Revision:     ad76ba00f59ecb287bd3c037bd25fc3df13ca558

Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_91 (Oracle Corporation 25.91-b14)
OS:           Linux 3.0.101-0.40-default amd64
Run Code Online (Sandbox Code Playgroud)

感谢帮助

Chr*_*iki 6

正如 OP 在他自己的回答中提到的,Gradle 使用的临时目录可以通过java.io.tmpdir系统属性设置。也许以下是显而易见的,但以防万一:您还可以使用Gradle 的环境变量配置此系统属性,这样您就不必在每次 Gradle 调用时单独配置它。

例如,您可以将以下内容添加到您的.bashrc:

export GRADLE_OPTS=-Djava.io.tmpdir=/path/to/tmpdir
Run Code Online (Sandbox Code Playgroud)

GRADLE_OPTS应该被gradleGradle Wrapper ( gradlew)和 Gradle Wrapper识别。


Bjö*_*n P 1

通过 -Djava.io.tmpdir=/path/to/tmpdir 解决