Gradle 属性( Gradle build environment)

[详细信息]("https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties")

gradle 属性可以在如下几个地方设置,按优先级

  • 在 build 时 使用 -Dxxx.xxx.xxx=value

  • GRADLE_USER_HOME 目录下的 gradle.properties

  • project 根目录下的 gradle.properties 文件中的属性

  • gradle 安装目录下的 gradle.properties 文件中的属性

下面是可用的 gradle 属性

  • org.gradle.caching=(true,false)

    build 的时是否使用缓存

  • org.gradle.caching.debug=(true,false)

    是否 Log debug 信息

  • org.gradle.configureondemand=(true,false)

    Enables incubating configuration on demand, where Gradle will attempt to configure only necessary projects.

  • org.gradle.console=(auto,plain,rich,verbose)

    console 颜色

  • org.gradle.daemon=(true,false)

    gradle build 进程是否可以利用,默认 true ,可以加速 Build

  • org.gradle.daemon.idletimeout=(# of idle millis)

    Gradle 守护进程将在指定的空闲毫秒数后自行终止。默认值为 10800000(3 小时)。

  • org.gradle.debug=(true,false)

    是否 debug gradle , 这个会给 jvm 运行添加参数 -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

  • org.gradle.java.home=(path to JDK home)

    指定 jdk 路径

  • org.gradle.jvmargs

    需要添加的 jvm 属性

  • org.gradle.logging.level=(quiet,warn,lifecycle,info,debug)

    gradle log 级别

系统环境变量

[详细看这里]('https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_environment_variables')

JAVA_HOME

gradle 需要使用的目录,

GRADLE_USER_HOME

Specifies the Gradle user home directory (which defaults to $USER_HOME/.gradle if not set).

指定一个gradle user home ,如果不指定的话会在 当前系统用户目录下的.gradle文件夹。这个目录会存入不同版本的 gradle,还有gradle的库文件

GRADLE_OPTS

指定运行 gradle 时的 jvm 参数

系统变量

这时的系统变量指的是 java 中的系统变量, 也包含 -Dxxx.xxx=value 这种变量,这种变量在 java 中是可以通过 System.getProperties 获得的 [明细]

("https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_system_properties")

这些系统变量最好放在 project 的根目录,否则可能会不起作用

  • gradle.wrapperUser 下载时如果需要身份验证,这个属性设置用户名
  • gradle.wrapperPassword 下载时如果需要身份验证,这个属性设置用户密码
  • gradle.user.home 作用 同 环境变量 GRALE_USER_HOME

这些变量还可以写成在 gradle.properties 文件中,但当多工程构建时,除了根目录的 ,其他子工程的都会被忽略,格式是这样

systemProp.gradle.wrapperUser=myuser
systemProp.gradle.wrapperPassword=mypassword

工程属性

只对这个工程起作用

用户目录下的 属性会优先于工程属性

在工程的 gradle.propertis 文件中

# 设置属性 foo 的值为 bar
org.gradle.project.foo=bar

也可以通过环境变量还配置

ORG\_GRADLE\_PROJECT_foo=bar

意思是设置一个工程变量 ```foo``` 的值为 ```bar```

设置 gradle 使用的网络代理

http

systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

https

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost