gradle.user.home - 在 gradle.properties、build.gradle 或 settings.gradle 中设置到项目相对位置?

dre*_*rew 3 gradle

默认情况下,gradle.user.home设置为~/.gradle- 我想将其更改为相对于项目的目录,而不是开发人员的主目录。

我知道当你调用 gradle 时可以这样做,如下所示:

$ gradle --gradle-user-home=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)

或者

$ gradle -Dgradle.user.home=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)

我知道您可以通过将以下内容添加到 settings.gradle 来更改构建缓存的位置:

buildCache {
    local {
        // Set local build cache directory.
        directory = "${settingsDir}/build-cache"
    }
}
Run Code Online (Sandbox Code Playgroud)

但 gradle 继续用于gradle.user.home其他缓存。

手册声称您可以gradle.user.home在 中指定gradle.properties,如下所示:

systemProp.gradle.user.home=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)

但这似乎根本不起作用,不适用于绝对路径或相对路径;尽管稍后可以通过 检索它System.getgradle但似乎并未使用它。

还有其他解决方案吗?

小智 6

您还可以通过更改 GRADLE_USER_HOME 环境变量来完成此操作。在这种情况下,所有文件都将保存在指定的目录中。

export GRADLE_USER_HOME=./project-relative-directory
Run Code Online (Sandbox Code Playgroud)