Gradle 属性设置,环境变量说明

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

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

  2. GRADLE_USER_HOME 目录下的 gradle.properties

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

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

下面是可用的gradle 属性

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

    build的时是否使用缓存

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

    是否Log debug 信息

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

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

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

    console 颜色

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

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

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

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

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

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

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

    指定jdk 路径

  9. org.gradle.jvmargs

    需要添加的jvm 属性

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

    gradle log 级别

系统环境变量

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

  1. JAVA_HOME

    gradle 需要使用的目录,

  2. GRADLE_USER_HOME

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

 指定一个gradle user home ,如果不指定的话会在 当前系统用户目录下的.gradle文件夹。这个目录会存入不同版本的 gradle,还有gradle的库文件
  1. 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 的根目录,否则可能会不起作用

  1. gradle.wrapperUser 下载时如果需要身份验证,这个属性设置用户名

  2. gradle.wrapperPassword 下载时如果需要身份验证,这个属性设置用户密码

  3. 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 使用的网络代理

  1. 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
    
    
  2. 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