如何为所有我的Android项目设置Gradle属性?

8

如何为所有我的Android项目设置Gradle属性? 我有不同的Android项目,但每当我更改项目文件夹中的gradle.properties文件时,它只会影响该项目。 而且我找不到根目录中.gradle文件夹中的gradle.properties。 如何为所有项目设置通用属性,以便我不需要每次更改。


你的意思是在同一多项目构建中的不同项目之间,还是在你特定系统上的所有项目之间? - Lukas Körfer
不要在多个项目中,我想保存在我的系统中所有项目的更改。 - Amit Kumar
5个回答

9
Gradle支持在GRADLE_USER_HOME目录下的gradle.properties文件中设置系统级属性,该目录默认为您主目录下名为.gradle的文件夹,例如Windows上的C:\Users\<user>\.gradle
这些系统特定的属性可能会覆盖项目特定的属性,因此它们可以用于仅为本地机器指定用户名和密码。
这个全局的gradle.properties文件可能默认不存在,但即使没有,您也可以创建一个,它将被使用并且属性将在您的构建脚本中可用。
如果您的全局设置需要更多的逻辑而不仅仅是简单的属性,则可以使用初始化脚本,这些脚本可以放置在相同的位置(或init.d子目录中)。

4

对于MacOS用户:

  1. 打开终端并输入cd ~/.gradle
  2. 执行ls检查是否已存在gradle.properties
  3. 如果不存在,则创建一个:vi gradle.properties
  4. 如果已存在,则修改您要修改的配置并保存。

3

这里是答案

这个全局 gradle.properties 可能默认情况下不存在,但即使没有,你也可以创建一个,它会被使用,属性将在你的构建脚本中可用。

在 C:\Users\user-name.gradle 中创建一个名为 gradle.properties 的文件,不带任何扩展名。


1

文档:

项目属性从父项目继承到子项目。

根项目

ext{
    supportLibVersion = '25.3.1'

    //supportLib
    supportLib = "com.android.support:support-v4:$supportLibVersion"
}

子项目:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    //supportLib
    compile rootProject.ext.supportLib
}

1
我想在所有项目中将我的Gradle守护进程设置为true,并提供更大的堆大小,但我需要对所有项目进行更改。我该如何为所有项目设置通用配置? - Amit Kumar
您可以在根项目中定义变量并将其用作项目中的值。请检查我如何定义了supportLib变量并将其用作值。 - Ravindra Shekhawat

0
根据Gradle的文档,您可以通过环境变量设置项目属性。您只需要使用ORG_GRADLE_PROJECT前缀环境变量,并且Android Studio会将其加载为所有Android(和Gradle)项目的项目属性。例如:
echo 'export ORG_GRADLE_PROJECT_foo=bar' >> ~/.zshenv

你可以在 build.gradle 文件中将其作为项目属性进行访问:

def fooProperty = project.foo
println("Foo property is $fooProperty") // prints bar

注意:添加环境变量后,请确保重新启动Android Studio,以便正确加载属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接