概述
配置Gradle及其行为可以通过以下四种方式,这四种方式排名有先后,靠前的作用优先于靠后的
配置命令行参数
通过命令行追加参数的方式,实现改变控制Gradle (--build-cache)
配置系统属性
在gradle.properties里配置system开头的属性( systemProp.http.proxyHost=somehost.org)
配置Gradle属性
在gradle.properties里配置属性(org.gradle.caching=true)
配置环境变量
设置环境变量( GRADLE_OPTS)
配置Gradle属性
gradle.properties查找优先级
Gradle的属性配置,是通过在gradle.properties文件里配置来实现的。一个项目里可能会有多个 gradle.properties,但是以构建时找到的第一个为准?
- 命令行参数指定的gradle.properties
- GRADLE_USER_HOME里的 gradle.properties
- 在项目根目录里的gradle.properties
- 在Gradle安装根目录里的gradle.properties
Gradle可配置属性
- org.gradle.caching=(true,false) 是否启用Task的输出缓存,启用后将使用Task之前生成的结果,加快构建速度
- org.gradle.caching.debug=(true,false) 启用后,缓存相关的信息将打印到控制台
- org.gradle.configureondemand=(true,false) 启用后,Gradle将为有需要的项目,实现按需配置
- org.gradle.console=(auto,plain,rich,verbose) 配置控制台输出的级别和颜色等
- org.gradle.daemon=(true,false) 是否开启Gradle Daemon 默认开启,后台始终存在的守护进程
- org.gradle.daemon.idletimeout=(# of idle millis) 给Gradle Daemon设置一个超时时间,默认10800000毫秒(3小时)
- org.gradle.debug=(true,false) 是否允许远程调试,当开启时监听5005端口
- org.gradle.java.home=(path to JDK home) 给Gradle指定JavaHome
- org.gradle.jvmargs=(JVM arguments) 给Gradle Daemon设置Jvm内存参数
- org.gradle.logging.level=(quiet,warn,lifecycle,info,debug) 配置Gradle Log的显示级别,默认的是lifecycle
- org.gradle.parallel=(true,false) 是否允许多线程并发执行Task
- org.gradle.priority=(low,normal). 给Gradle Daemon设置调度优先级,默认normal
- org.gradle.vfs.verbose=(true,false) 给监视的文件系统配置Log显示级别
- org.gradle.vfs.watch=(true,false) 是否监视文件系统在构建前后的变化
- org.gradle.warning.mode=(all,fail,summary,none) 设置警告显示的模式,警告的显示级别
- org.gradle.workers.max=(max # of worker processes) Gradle构建时最大并发线程数量,默认是当前设别CPU的核心进程数
系统可配置属性
- gradle.wrapperUser=(myuser) 下载Gradle时需要设置一个用户名
- gradle.wrapperPassword=(mypassword) 下载Gradle时需要设置一个密码
- gradle.user.home=(path to directory) Gradle 用户文件夹地址
- https.protocols 设置TLS的版本 TLSv1.2,TLSv1.3
环境变量
- GRADLE_OPTS 用于配置一些参数给JVM用
- GRADLE_USER_HOME 用于指定Gradle的用户文件夹,默认 $USER_HOME/.gradle
- JAVA_HOME 指定JDK所在
JVM参数
- org.gradle.jvmargs 配置一些JVM相关的参数,例如:
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError
-Dfile.encoding=UTF-8