将用户项目特定的 Gradle 属性放在哪里?

Where to put user-project specific Gradle properties?

Gradle 属性存储到名为 gradle.properties 的文件中。可以位于项目根目录,也可以位于~/.gradle/

根据 this discussion on gradle.org,项目根目录中的 属性 文件应该包含项目特定的属性并且应该在源代码控制下(在我的例子中是 Git)。用户特定的属性应该在 ~/.gradle/gradle.properties 中,这样它们就不会在 SCM 下提交。

但是我应该将特定项目中特定用户的属性放在哪里,比方说中央 Git 存储库的凭据?

我正在使用需要属性 gitUsernamegitPasswordjgitflow-gradle-plugin。这些属性绝对不应该被提交。因此不能放在项目根目录下的gradle.properties中。另一方面,它们不应该被不同的项目共享,因为我可以使用不同的 Git 具有不同凭据的中央存储库。

有没有办法在一个项目中使用多个 gradle.properties 文件?其中一个将被提交,另一个将被 git-忽略。

你应该试试 Gradle Properties Plugin。它增强了 Gradle 从各种属性文件加载属性的方式。

1# 设置:

plugins {
  id 'net.saliman.properties' version '1.4.6'
}

或旧方法 (Gradle <= 2.0)

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'net.saliman:gradle-properties-plugin:1.4.6'
    }
}

apply plugin: 'net.saliman.properties'

2#在工程目录下创建gradle-local.properties文件,git忽略。将您的凭据添加到其中。

3# 将原始 gradle.properties 置于版本控制之下,并在其中保留您希望通过 git

共享的属性